Bardzo często zdarza się, że tworząc procedury skladowane używamy RAISERROR() obsługując podobne systuacje wyjątkowe. Używając sp_addmessage można dodaćna stałe własny często występujący komunikat błędów.
Używając sp_addmessage dodajemy do sys.messages własny komunikat błędu, który możemy wywołać przy pomocy Raiserror().
Utworzenie nowego komunikatu ze zmienną %s w komunikacie błędu:
USE master
GO
EXEC sp_addmessage
100001,
14,
N'The current table %s is not updateable by your group!'
GO
Wywołanie komunikatu błędu za pomocą Raiserror przekazując parametr N'HumanResources.Employee' :
RAISERROR (100001, 14, 1, N'HumanResources.Employee')
uzyskany komunikat to:
Msg 100001, Level 14, State 1, Line 3
The current table HumanResources.Employee is not updateable by your group!
Opis składni:
- msg_id - Id wywoływanego komunikatu błędu.Dozwolony zakres wartości od 50 001 and 2 147 483 647
- severity - poziom ważności informacji w zakresie od 0 do 25.
Poziomy od 0 do 18 mogą być określone przez dowolnego użytkownika.
Poziomy ważności od 19 do 25 mogą być określone tylko przez sysadmin
- msg - komunikat błędu - typ nvarchar(255)
W komunikatach błędu można umieszczać zmienne, które są później przekazywane jako parametry Raiserror. Maksymalna ilość parametrów to 20.
Wyróżniamy następujące typy zmiennych:
%s - string
%d lub %i - signed integer
%o - unsigned octal
%u - unsigned integer
%x lub %X - unsigned hexadecimal
Więcej informacji na: