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
, WARNING
eller 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;