一些开发人员在RaiseError中使用以下语法:
RAISERROR('My business error message', 16, 0)
为了重用try..catch块的捕获部分也是为了商业错误。
但是我发现了几个这样的事件日志条目:
Msg # 50006, <blabla> please register the error message with sp_addmessage
有一些方法来禁止创build这样的事件? 我search谷歌,MSDN和文档,但没有find线索。
这意味着其他一些开发人员正在使用RAISERROR(50006, 16,1) …当使用msgid语法(或者当在语法中的@local_variable是一个int)时,期望的是该消息被添加到本地消息表中。 这是本地化错误的正常方法,raiserror一个msgid并添加本地化为各种语言的消息。
无论应用程序/开发人员使用的是何种语法,他/她还负责在部署过程中将消息添加到消息表中,以用于服务器的语言环境。
RAISEERROR('这只是信息',10,1)
这将告诉SQL Server引发一个非致命错误。
参考: http : //www.sqlteam.com/article/handling-errors-in-stored-procedures