gpt4 book ai didi

sql-server - 这种未记录的 RAISERROR 语法是否曾经被记录并随后被弃用?

转载 作者:行者123 更新时间:2023-12-02 09:34:05 25 4
gpt4 key购买 nike

我正在开发一个大型 SQL Server 代码库,其中一些代码库至少从 SQL 7 甚至更早的版本就开始开发了。

在整个代码库中,引发错误的方法是使用以下语法,据我所知,该语法未记录

RAISERROR <error number> <error message>

错误号可以是任何大于13000的值; sys.messages 表中不需要存在相应的条目。 错误消息也可以是任意的。

示例代码如下

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 中未定义的任何用户错误号都应使用错误消息 ID 50000 引发

最佳答案

这看起来可能是对 Sybase 中 SQL Server 起源的回溯,其 RAISERROR 命令具有以下精确语法:

无论其起源如何,此语法从 SQL Server 2008 R2 开始已弃用,并将在 SQL Server 2012 (v 11.x) 中删除。x。请参阅Deprecated Database Engine Features in SQL Server 2008 R2页面了解详细信息。

关于sql-server - 这种未记录的 RAISERROR 语法是否曾经被记录并随后被弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3749962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com