將用戶定義消息記入 Microsoft® SQL Server™ 日志文件和 Microsoft Windows NT® 事件查看器??梢允褂?xp_logevent 發(fā)送警報(bào),而不必給客戶端發(fā)送消息。
xp_logevent
{error_number, 'message'
} [, 'severity']
error_number
是用戶定義的大于 50,000 的錯(cuò)誤號(hào)。最大值為 1073741823 (230 - 1)。
'message'
是少于 8,000 個(gè)字符的字符串。
'severity'
是以下三個(gè)字符串之一:INFORMATIONAL、WARNING 或 ERROR。severity 是可選的,其默認(rèn)值為 INFORMATIONAL。
0(成功)或 1(失?。?/P>
對(duì)于所包含的代碼示例,xp_logevent 返回下列錯(cuò)誤信息:
The command(s) completed successfully.
在從 Transact-SQL 過程、觸發(fā)器、批處理等環(huán)境中發(fā)送消息時(shí),請(qǐng)使用 RAISERROR 語句,而不要使用 xp_logevent。xp_logevent 不調(diào)用客戶端的消息處理程序,也不設(shè)置 @@ERROR。若要將消息寫入 Windows NT 事件查看器和 SQL Server 內(nèi)的 SQL Server 錯(cuò)誤日志文件中,請(qǐng)執(zhí)行 RAISERROR 語句。
xp_logevent 的執(zhí)行權(quán)限默認(rèn)授予 master 數(shù)據(jù)庫中的 db_owner 固定數(shù)據(jù)庫角色成員以及 sysadmin 固定服務(wù)器角色成員,但可以授予其他用戶。
下例將消息(連同傳遞給消息的變量)記入 Windows NT 事件查看器。
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
相關(guān)文章