xp_logevent (Transact-SQL)
將使用者自訂訊息記錄在 SQL Server 記錄檔以及 Windows 事件檢視器中。xp_logevent 可以用來傳送警示而不傳送訊息給用戶端。
語法
xp_logevent { error_number , 'message' } [ , 'severity' ]
引數
- error_number
這是使用者自訂的錯誤號碼 (大於 50,000)。最大值是 2147483647 (2^31 - 1)。
- 'message'
這是字元字串,最多 255 個字元。
- '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
請參閱
參考
PRINT (Transact-SQL)
RAISERROR (Transact-SQL)
系統預存程序 (Transact-SQL)
一般擴充預存程序 (Transact-SQL)