Poprawna obsługa błędów w SQL Server

0

Witam. Mam dosyć spory problem z obsługa błędów w T-SQL. Mianowicie podchodzę do tej obsługi jak w C++ czy innym C# i widzę, że powinienem zasięgnąć rady osób, które mają więcej doświadczenia na tym polu.

Ale do sedna problemu: na tabeli tab1 w bazie A postawiłem dwa triggery (osobno na update i insert). Te triggery wywołują procedury składowane, które dokonują obliczeń i zapisują wynik w tab2 w bazie B. Tyle słowem wstępu. Problemem jest wychwytywanie błędów - mam bloki try...catch w triggerze oraz w procedurach. Problem jest tylko taki, że nie za bardzo wykonują mi się polecenia w bloku BEGIN CATCH ... END CATCH. Chciałem zapisać błędy w tabeli błędów oraz zapisać do pliku:

set @msg = 'echo ' + Convert(varchar(4000), @ErrorMsg) + '>>' + @path
exec master..xp_cmdshell @msg

Tak więc w ogóle nie zapisuje się informacja o błędzie. Jedyne co widocznie się wykonuje to polecenie rollback transaction. Jak skutecznie zabrać się do obsługi błędów?

0

Pokaż kod triggerów i procedur.

1 użytkowników online, w tym zalogowanych: 0, gości: 1