Primero que nada, si solo es una sentencia de modificacion de datos, no requieres de una transaccion explicita, sql server maneja automaticamente la operacion con una transaccion implicita.
Código:
alter procedure [dbo].[sp_InsCreaMensajePadrinos]
@Mensaje varchar(256),
@UserName varchar(50),
@retValor int output
as
declare @codigoPadrino bigint
declare @codigoAbuelo bigint
-- begin
-- SELECT @codigoPadrino = Padrino.idPadrino
-- FROM dbo.Padrino
-- INNER JOIN Apadrina ON Padrino.idPadrino = Apadrina.idPadrino
-- WHERE UserName =@UserName
-- end
insert into dbo.MensajesPadrinoLog
(
idPadrino,
idAbuelo
-- Mensaje,
-- idTipoEstado,
-- FechaMensaje
)
values
(
2508,
45
-- 'kjkklkll',
-- 6,
-- getdate()
)
IF @@Error = 0
set @retValor= @@identity
Else
set @retValor= -1
GO