Dela via


xp_logevent (Transact-SQL)

gäller för:SQL Server

Loggar ett användardefinierat meddelande i SQL Server-loggfilen och i Windows-händelseloggen. xp_logevent kan användas för att skicka en avisering utan att skicka ett meddelande till klienten.

Transact-SQL syntaxkonventioner

Syntax

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

Argument

Viktig

Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.

error_number

Ett användardefinierat felnummer som är större än 50000. Det maximala värdet är 2147483647 (2^31 – 1).

"meddelande"

En teckensträng med högst 2 048 tecken.

"allvarlighetsgrad"

En av tre teckensträngar: INFORMATIONAL, WARNINGeller ERROR. allvarlighetsgrad är valfri, med standardvärdet INFORMATIONAL.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

xp_logevent returnerar följande felmeddelande för det inkluderade kodexemplet:

The command(s) completed successfully.

Anmärkningar

När du skickar meddelanden från Transact-SQL procedurer, utlösare, batchar och så vidare använder du RAISERROR-instruktionen i stället för xp_logevent. xp_logevent anropar inte en meddelandehanterare för en klient eller anger @@ERROR. Om du vill skriva meddelanden till Windows-händelseloggen och till SQL Server-felloggfilen i en instans av SQL Server kör du instruktionen RAISERROR.

Behörigheter

Kräver medlemskap i db_owner fast databasroll i master-databasen eller medlemskap i sysadmin fast serverroll.

Exempel

I följande exempel loggas meddelandet med variabler som skickas till meddelandet i Windows Loggboken.

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;