我正在研究一個大型的SQL Server代碼庫,其中一些代碼至少在SQL 7之後,可能還在開發之中。這是未記錄的RAISERROR語法是否有記錄並隨後被棄用?
在整個代碼庫,提高錯誤的方法是使用以下語法是,據我所知,無證
RAISERROR <error number> <error message>
的error number
可以是任何值大於13000以上; sys.messages
表中不需要存在相應的條目。 error message
也可以是任意的。
以下示例代碼
raiserror 13000 'test error'
產生以下輸出
Msg 13000, Level 16, State 1, Line 1
test error
此行爲是在SQL同一2000,2005和2008(我沒有測試2008 R2)。
我們將嘗試對支持的方法進行標準化,但我的問題是這種行爲來自哪裏。
我認爲這必須曾經被記錄,支持的行爲,但SQL 7和以前的在線書籍很難找到。有人知道什麼時候支持它或者什麼時候它被棄用,如果有的話?
編輯 爲了澄清,根據documentation,支持的RAISERROR
語法是
RAISERROR ({ msg_id | msg_str | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ])
[ WITH option [ ,...n ] ]
和未在sys.messages
定義的任何用戶錯誤數目應與50000
同意 - 但語法沒有記錄,根據文檔,在sys.messages中沒有定義任何用戶錯誤應該引發錯誤代碼爲50000 – 2010-09-20 09:20:18