2014-05-19 29 views
3

我們在SQL Server中使用RAISERROR。語法是RAISERROR('Some Message.', 16, 1)sqlserver中的嚴重性和狀態在raiserror中有什麼

在我的示例中,參數值161RAISERROR()的用途是什麼?我搜索了互聯網,發現這些參數被稱爲SeverityState

我想知道的是什麼是SeverityState意味着什麼?

+3

「請閱讀我的文檔」? – TomTom

回答

1

嚴重性

是用戶定義的嚴重性級別與此消息關聯的。使用msg_id引發使用sp_addmessage創建的用戶定義消息時,RAISERROR上指定的嚴重性將覆蓋sp_addmessage中指定的嚴重性。 任何用戶都可以指定從0到18的嚴重性級別。只能由sysadmin固定服務器角色的成員或具有ALTER TRACE權限的用戶指定從19到25的嚴重性級別。對於從19到25的嚴重級別,需要使用WITH LOG選項。嚴重性級別小於0被解釋爲0嚴重性級別大於25被解釋爲25.

狀態

是從0到255的負值的整數或值大於255產生一個錯誤。您可以指定-1來返回與錯誤關聯的值,如嚴重性定義中的示例所示。 如果在多個位置引發相同的用戶定義錯誤,則爲每個位置使用唯一的狀態編號可以幫助查找代碼的哪一部分引發錯誤。

來源 - http://msdn.microsoft.com/en-IN/library/ms178592.aspx

6

錯誤狀態有引腳地步,在你的代碼發生錯誤的位置。假如你有1000行長的存儲過程,並且你在不同的地方發生錯誤,錯誤狀態將幫助你知道實際產生了哪個錯誤。

錯誤嚴重給出有關發生的錯誤的類型,

高達嚴重級別10是信息性消息的信息。

11-16被認爲是可以由用戶固定的錯誤。

17-19被認爲是在SQL服務器資源,發動機和其他的東西非致命錯誤。

20-25被認爲是致命錯誤,導致sql server立即關閉該進程。

相關問題