Udostępnij za pośrednictwem


xp_logevent (Transact-SQL)

Dotyczy:programu SQL Server

Rejestruje komunikat zdefiniowany przez użytkownika w pliku dziennika programu SQL Server i w dzienniku zdarzeń systemu Windows. xp_logevent można użyć do wysyłania alertu bez wysyłania komunikatu do klienta.

Transact-SQL konwencje składni

Składnia

xp_logevent { error_number , 'message' } [ , 'severity' ]

Argumenty

Ważny

Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.

error_number

Liczba błędów zdefiniowana przez użytkownika większa niż 50000. Maksymalna wartość to 2147483647 (od 2^31 do 1).

"komunikat"

Ciąg znaków z maksymalnie 2048 znakami.

'ważność'

Jeden z trzech ciągów znaków: INFORMATIONAL, WARNINGlub ERROR. ważność jest opcjonalna z wartością domyślną INFORMATIONAL.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Zestaw wyników

xp_logevent zwraca następujący komunikat o błędzie dla dołączonego przykładu kodu:

The command(s) completed successfully.

Uwagi

Gdy wysyłasz komunikaty z procedur Transact-SQL, wyzwalaczy, partii itd., użyj instrukcji RAISERROR zamiast xp_logevent. xp_logevent nie wywołuje procedury obsługi komunikatów klienta ani nie ustawia @@ERROR. Aby zapisać komunikaty w dzienniku zdarzeń systemu Windows i w pliku dziennika błędów programu SQL Server w wystąpieniu programu SQL Server, wykonaj instrukcję RAISERROR.

Uprawnienia

Wymaga członkostwa w stałej roli bazy danych db_owner w bazie danych master lub członkostwa w roli serwera stałego sysadmin.

Przykłady

Poniższy przykład rejestruje komunikat ze zmiennymi przekazanymi do komunikatu w Podglądzie zdarzeń systemu Windows.

DECLARE @@TABNAME VARCHAR(30),
    @@USERNAME VARCHAR(30),
    @@MESSAGE VARCHAR(255);

SET @@TABNAME = 'customers';
SET @@USERNAME = USER_NAME();

SELECT @@MESSAGE = 'The table ' + @@TABNAME + ' is not owned by the user
   ' + @@USERNAME + '.';

USE master;

EXEC xp_logevent 60000, @@MESSAGE, informational;