Con el fin para envolver procedimiento almacenado en una transacción añado lo siguiente: Yatransacción tsql
CREATE PROCEDURE [dbo].[P_ORD_InsertTextField]
//PARAMS
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
//STP BODY
COMMIT
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(),
@ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1)
END CATCH
END
GO
alguna manera más corto que hace lo mismo? este es un gran bloque de código para "solo" manejar una transacción ..
@gbn: ¿Cuál es la razón para no cuentan en su respuesta? – Naor
@Naor: las "xx filas afectadas" devuelve un conjunto de registros adicional al cliente. También rompe algunos ORM y algunos clientes. Consulte mi pregunta aquí http://stackoverflow.com/q/1483732/27535 – gbn
@gbn: ¿Así que pone SET NOCOUNT en cada procedimiento almacenado que tiene? – Naor