sql >> Databáze >  >> RDS >> Sqlserver

TSQL:Try-Catch Transaction in Trigger

Podle mých zkušeností jakákoli chyba zachycená při pokusu o zachycení ve spouštěči vrátí zpět celou transakci; možná budete moci použít uložení transakce. Myslím, že se musíte podívat na to, co se děje v "Nějaké další sql" a určit, zda kolem toho můžete napsat příkazy case / if, abyste chybu zastavili.

V závislosti na tom, co děláte, možná budete moci použít uložení transakce a zachyťte to v úlovku

Ve vašem kódu něco takového

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


  1. Postup Přetečení vyrovnávací paměti

  2. Jak provedu uloženou proceduru jednou pro každý řádek vrácený dotazem?

  3. Virtuální hostitel WAMP nefunguje

  4. SQL kombinující dva sloupce do jedné proměnné