Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

TSQL:transazione Try-Catch in Trigger

Nella mia esperienza, qualsiasi errore rilevato in un try catch in un trigger eseguirà il rollback dell'intera transazione; potresti essere in grado di utilizzare una transazione di salvataggio. Penso che tu debba guardare cosa sta succedendo in "Some more sql" e determinare se puoi scrivere case / if istruzioni per fermare l'errore.

Ciò che potresti essere in grado di fare a seconda di ciò che stai facendo è utilizzare una salvataggio e catturalo nella cattura

Nel tuo codice qualcosa del genere

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