我正在研究一个大型的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