Często spotykamy się z sytuacjami gdzie tworząc swoje procedury składowane używamy funkcji RAISERROR() i obsługujemy podobne systuacje (zdarzenia) wyjątkowe. Używając sp_addmessage możemy dodać na stałe własny często występujący komunikat błędów.

Sp_addmessage dodaje do sys.messages nasz własny komunikat błędu, który jesteśmy wstanie wywołać przy pomocy Raiserror().

I tak np. utworzymy nowy komunikat 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:


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl