Condividi tramite


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, WARNINGo 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;