Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

TSQL:Try-Catch-Transaktion im Trigger

Meiner Erfahrung nach wird jeder Fehler, der in einem Try-Catch in einem Trigger gefangen wird, die gesamte Transaktion rückgängig machen; Möglicherweise können Sie eine Sicherungstransaktion verwenden. Ich denke, Sie müssen sich ansehen, was in "Some more sql" passiert, und feststellen, ob Sie case / if-Anweisungen darum schreiben können, um den Fehler zu stoppen.

Je nachdem, was Sie tun, können Sie möglicherweise eine Speichertransaktion verwenden und erfassen Sie das im catch

In Ihrem Code etwas in der Art

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