xp_logevent (Transact-SQL)
將使用者定義的訊息記錄在 SQL Server 記錄檔中及 Windows 事件檢視器中。xp_logevent 可用來傳送警示,而不需要傳送訊息給用戶端。
語法
xp_logevent { error_number , 'message' } [ , 'severity' ]
引數
error_number
這是使用者自訂的錯誤號碼 (大於 50,000)。最大值是 2147483647 (2^31 - 1)。'message'
這是字元字串,最多 2048 個字元。'severity'
這是三個字元字串的其中一個:INFORMATIONAL、WARNING 或 ERROR。severity 為選擇性,且預設值為 INFORMATIONAL。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
xp_logevent 會針對所包含的程式碼範例,傳回下列錯誤訊息:
The command(s) completed successfully.
備註
從 Transact-SQL 程序、觸發程序、批次等傳送訊息時,請利用 RAISERROR 陳述式來取代 xp_logevent。xp_logevent 不會呼叫用戶端的訊息處理常式或設定 @@ERROR。若要將訊息寫入 Windows 事件檢視器和 SQL Server 執行個體內的 SQL Server 錯誤記錄檔中,請執行 RAISERROR 陳述式。
權限
需要 master 資料庫中 db_owner 固定資料庫角色中的成員資格,或系統管理員 (sysadmin) 固定伺服器角色中的成員資格。
範例
下列範例會將訊息連同傳遞到訊息的變數記錄到 Windows 事件檢視器中。
DECLARE @@TABNAME varchar(30)
DECLARE @@USERNAME varchar(30)
DECLARE @@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