我正在尝试执行以下代码:
THROW 51051, 'I come from the THROW construct :)', 1 ;
我得到的错误是:
Could not find stored procedure 'THROW'.
THROW
程序不是一个系统程序吗?为什么不能找到它?
此外,unsing THROW
和ErrorState
之间的区别是什么?是一个比另一个更老/更新/更好?
什么" ErrorSeverity"和" ErrorState"是ErrorState
的意思?我可以按照自己的意愿定义它们,还是预定义它们?
答案 0 :(得分:10)
阅读以下内容:Differences Between RAISERROR and THROW in Sql Server
RAISERROR 和 THROW 语句都用于在 Sql Server 中引发错误。 RAISERROR 的旅程从 Sql Server 7.0 开始,其中 THROW 语句的旅程刚刚从 Sql Server 2012开始 STRONG>。显然,微软建议我们开始使用THROW语句而不是RAISERROR。 THROW 声明似乎比 RAISERROR 简单易用。
答案 1 :(得分:6)
是的,但是only since 2012。如果您使用的是2008R2,那么它就不存在了。
状态和严重性的定义清楚地记录在raiserror文档
中