xp_logevent (Transact-SQL)
適用於:SQL Server
在 SQL Server 記錄檔和 Windows 事件記錄檔中記錄使用者定義訊息。 xp_logevent
可以用來傳送警示,而不傳送訊息給用戶端。
語法
xp_logevent { error_number , 'message' } [ , 'severity' ]
引數
error_number
大於的使用者定義錯誤號碼 50000
。 最大值為 2147483647
(2^31 - 1)。
'message'
最多 2048 個字元的字元字串。
'severity'
三個字元字串之一: INFORMATIONAL
、 WARNING
或 ERROR
。 嚴重性 是選擇性的,預設值為 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;