sql >> Base de Datos >  >> RDS >> Sqlserver

TSQL:Transacción Try-Catch en Trigger

En mi experiencia, cualquier error detectado en un intento de captura en un disparador revertirá toda la transacción; es posible que pueda usar una transacción guardada. Creo que debe ver lo que sucede en "Algo más de sql" y determinar si puede escribir declaraciones case/if para detener el error.

Lo que puede hacer dependiendo de lo que esté haciendo es usar una transacción guardar y capturar eso en la captura

En tu código algo como esto

SAVE TRANSACTION BeforeUpdate;
BEGIN TRY
        --Some More SQL
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION BeforeUpdate;
        return
END CATCH