Sdílet prostřednictvím


xp_logevent (Transact-SQL)

platí pro:SQL Server

Zaznamená uživatelem definovanou zprávu v souboru protokolu SQL Serveru a v protokolu událostí systému Windows. xp_logevent lze použít k odeslání výstrahy bez odeslání zprávy klientovi.

Transact-SQL konvence syntaxe

Syntax

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

Argumenty

Důležitý

Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.

error_number

Uživatelem definované číslo chyby větší než 50000. Maximální hodnota je 2147483647 (2^31 –1).

zpráva

Řetězec znaků s maximálně 2048 znaky.

'závažnosti'

Jeden ze tří znaků řetězců: INFORMATIONAL, WARNINGnebo ERROR. závažnosti je nepovinný s výchozím nastavením INFORMATIONAL.

Návratové hodnoty kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

xp_logevent vrátí následující chybovou zprávu pro příklad zahrnutého kódu:

The command(s) completed successfully.

Poznámky

Když odesíláte zprávy z Transact-SQL procedur, triggerů, dávek atd., použijte místo xp_logeventpříkaz RAISERROR . xp_logevent nevolá obslužnou rutinu zprávy klienta ani @@ERROR. Pokud chcete zapisovat zprávy do protokolu událostí systému Windows a do souboru protokolu chyb SQL Serveru v instanci SQL Serveru, spusťte příkaz RAISERROR.

Dovolení

Vyžaduje členství v db_owner pevné databázové roli v databázi master nebo členství v správce systému pevné role serveru.

Příklady

Následující příklad zaznamená zprávu s proměnnými předanými do zprávy v Prohlížeči událostí systému 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;