Bagikan melalui


xp_logevent (T-SQL)

Berlaku untuk: SQL Server

Mencatat pesan yang ditentukan pengguna dalam file log SQL Server dan di log Peristiwa Windows. xp_logevent dapat digunakan untuk mengirim pemberitahuan tanpa mengirim pesan ke klien.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

error_number

Nomor kesalahan yang ditentukan pengguna lebih besar dari 50000. Nilai maksimum adalah 2147483647 (2^31 - 1).

'pesan'

String karakter dengan maksimum 2048 karakter.

'tingkat keparahan'

Salah satu dari tiga string karakter: INFORMATIONAL, , WARNINGatau ERROR. tingkat keparahan bersifat opsional, dengan default INFORMATIONAL.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

xp_logevent mengembalikan pesan kesalahan berikut untuk contoh kode yang disertakan:

The command(s) completed successfully.

Keterangan

Saat Anda mengirim pesan dari prosedur Transact-SQL, pemicu, batch, dan sebagainya, gunakan RAISERROR pernyataan alih-alih xp_logevent. xp_logevent tidak memanggil penangan pesan klien, atau mengatur @@ERROR. Untuk menulis pesan ke log Peristiwa Windows dan ke file log kesalahan SQL Server dalam instans SQL Server, jalankan RAISERROR pernyataan.

Izin

Memerlukan keanggotaan dalam peran database tetap db_owner dalam master database, atau keanggotaan dalam peran server tetap sysadmin .

Contoh

Contoh berikut mencatat pesan, dengan variabel yang diteruskan ke pesan di Pemantau Peristiwa 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;