Łukasz Kowalczyk

Ł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.

konto usunięte

Temat: obsłużenie błędu z triggera uruchamianego zapytaniem

RAISERROR
Łukasz Kowalczyk

Łukasz Kowalczyk Starszy konsultant,
LSI Software S.A.

Temat: obsłużenie błędu z triggera uruchamianego zapytaniem

trochę lakonicznie, ale resztę spróbuję wygooglać :)

konto usunięte

Temat: obsłużenie błędu z triggera uruchamianego zapytaniem

to jeszcze lakonicznie dodam
BEGIN TRY
...
END TRY
BEGIN CATCH
...
END CATCHRobert Kubalski edytował(a) ten post dnia 20.03.08 o godzinie 08:34
Łukasz Kowalczyk

Łukasz Kowalczyk Starszy konsultant,
LSI Software S.A.

Temat: obsłużenie błędu z triggera uruchamianego zapytaniem

Twój lakoniczny dodatek nie rozjaśnił ciemności mnie otaczających... Jakbyś mógł nieco bliżej przedstawić możliwość zastosowania proponowanego przez Ciebie rozwiązania w moim przypadku, byłbym wdzięczny.
Łukasz Kowalczyk

Łukasz Kowalczyk Starszy konsultant,
LSI Software S.A.

Temat: obsłużenie błędu z triggera uruchamianego zapytaniem

ok, mam, rozgryzłem!! :)

Wielkie dzięki za nakierowanie na sposób rozwiązania problemu.



Wyślij zaproszenie do