xp_logevent (Transact-SQL)

適用於:SQL Server

在 SQL Server 記錄檔和 Windows 事件記錄檔中記錄使用者定義訊息。 xp_logevent 可以用來傳送警示,而不傳送訊息給用戶端。

Transact-SQL 語法慣例

語法

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

引數

error_number

大於的使用者定義錯誤號碼 50000。 最大值為 2147483647 (2^31 - 1)。

'message'

最多 2048 個字元的字元字串。

'severity'

三個字元字串之一: INFORMATIONALWARNINGERROR嚴重性 是選擇性的,預設值為 INFORMATIONAL

傳回碼值

0 (成功)或 1 (失敗)。

結果集

xp_logevent 會傳回包含程式代碼範例的下列錯誤訊息:

The command(s) completed successfully.

備註

當您從 Transact-SQL 程式、觸發程式、批次等傳送訊息時,請使用 RAISERROR 語句, xp_logevent而不是 。 xp_logevent 不會呼叫用戶端的訊息處理程式,或設定 @@ERROR。 若要將訊息寫入 Windows 事件記錄檔,以及 SQL Server 實例內的 SQL Server 錯誤記錄檔,請執行 RAISERROR 語句。

權限

需要資料庫中db_owner固定資料庫角色的成員資格,或系統管理員固定伺服器角色master的成員資格。

範例

下列範例會記錄訊息,並將變數傳遞至 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;