![Łukasz Kowalczyk](https://static.goldenline.pl/user_photo/032/user_55328_54db66_basic.jpg)
Łukasz
Kowalczyk
Starszy konsultant,
LSI Software S.A.
Temat: obsłużenie błędu z triggera uruchamianego zapytaniem
Witam.I proszę o pomoc. Na MSSQL2005 mam skrypt insertujący dane do bazy. W przypadku błędów w insercie chciałbym wyświetlić informacje o błędzie:
begin tran
insert into Towary(TowInd, TypInd, Nazwa)
(select distinct i.TowInd, i.TypInd, i.Nazwa
from Import i
where
not exists(select * from Towary t where t.TowInd=i.TowInd));
IF @@ERROR <> 0
begin
print '---------------------------------------------------------------'
print 'UWAGA!!!!'
print 'Błąd podczas zapisu do tabeli Towary!!'
print 'Nieunikatowy zestaw informacji o produktach, najprawdopodobniej ten sam indeks ma dwie lub więcej różnych nazw lub jest przypisany do różnych typów towarowych!!'
print '---------------------------------------------------------------'
goto KoniecBAD;
end;
commit tran
KoniecBAD:
rollback tran
print 'Zaczytanie towarów zakończone niepomyślnie.';
Problem jest taki, że jak błąd nastąpi w samym zapytaniu, to wyświetlane są komunikaty z pętli, ale jeśli błąd wystąpi w triggerze uruchamianym zapytaniem, to komunikaty się nie wyświetlają.
Ma ktoś pomysł, jak spowodować każdorazowe wyświetlanie się komunikatów przy każdym, dowolnym błędzie w wykonaniu zapytania?
Z góry dziękuję za pomoc.