Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

TSQL:transakcja Try-Catch w wyzwalaczu

Z mojego doświadczenia wynika, że ​​każdy błąd złapany w próbie złapania w wyzwalaczu spowoduje wycofanie całej transakcji; możesz być w stanie skorzystać z transakcji zapisu. Myślę, że musisz przyjrzeć się temu, co dzieje się w „Nieco więcej sql” i określić, czy możesz napisać wokół niego instrukcje case / if, aby zatrzymać błąd.

To, co możesz zrobić w zależności od tego, co robisz, to użyć zapisz transakcję i uchwyć to w haczyku

W twoim kodzie coś takiego

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RADIANS() Przykłady w SQL Server

  2. Czy można użyć podwójnych cudzysłowów do rozgraniczenia ciągu?

  3. Jak mogę przejść do przechowywanej procedury SQL Server z mojego kodu C#?

  4. Port 1433 zapory nie otwiera się

  5. Procedura składowana zawiesza się pozornie bez wyjaśnienia