xp_logevent (Transact-SQL)
Si applica a: SQL Server
Registra un messaggio definito dall'utente nel file di log di SQL Server e nel registro eventi di Windows. xp_logevent
può essere usato per inviare un avviso senza inviare un messaggio al client.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
xp_logevent { error_number , 'message' } [ , 'severity' ]
Argomenti
error_number
Numero di errore definito dall'utente maggiore di 50000
. Il valore massimo è 2147483647
(2^31 - 1).
'message'
Stringa di caratteri con un massimo di 2048 caratteri.
'gravità'
Una delle tre stringhe di caratteri: INFORMATIONAL
, WARNING
o ERROR
. la gravità è facoltativa, con un valore predefinito .INFORMATIONAL
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Set di risultati
xp_logevent
restituisce il messaggio di errore seguente per l'esempio di codice incluso:
The command(s) completed successfully.
Osservazioni:
Quando si inviano messaggi da procedure Transact-SQL, trigger, batch e così via, usare l'istruzione RAISERROR
anziché xp_logevent
. xp_logevent
non chiama un gestore di messaggi di un client o imposta @@ERROR
. Per scrivere messaggi nel registro eventi di Windows e nel file di log degli errori di SQL Server all'interno di un'istanza di SQL Server, eseguire l'istruzione RAISERROR
.
Autorizzazioni
Richiede l'appartenenza al ruolo predefinito del database db_owner o master
l'appartenenza al ruolo predefinito del server sysadmin .
Esempi
Nell'esempio seguente il messaggio viene registrato, insieme alle variabili passate, nel Visualizzatore eventi di 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;