加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 迁移到SQL Server 2012后的RAISERROR问题

发布时间:2020-12-12 08:55:43 所属栏目:MsSql教程 来源:网络整理
导读:移动服务器后,我正在处理网站和数据库的一些问题.该数据库以前是SQL Server Express 2005,但现在正在SQL Server Express 2012上运行. 这些问题与2012年的RAISERROR命令和更改有关.我查看了新语法的文档,但不确定如何将错误号和消息传递给网站. 存储过程和触发
移动服务器后,我正在处理网站和数据库的一些问题.该数据库以前是SQL Server Express 2005,但现在正在SQL Server Express 2012上运行.

这些问题与2012年的RAISERROR命令和更改有关.我查看了新语法的文档,但不确定如何将错误号和消息传递给网站.

存储过程和触发器中的RAISERROR命令的一些示例是:

RAISERROR 50000 'Member with same Email address already exists.'

RAISERROR 44447 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblBrand''.'

RAISERROR 44446 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblFragranceHouse''.'

我已经改变了一些新的语法,但我不确定我是否正确地做了这个.我明白,如果我只是传递错误文本,它会传递错误号50000.但我不知道如何处理其他错误代码.

关于如何将这些命令翻译成2012的任何建议?

解决方法

SQL 2012不支持Raiserror的未记录版本
支持的语法是
RAISERROR(@Message,Serverity,state);

– @Message可能是消息ID,但它应该存在于sysmessages中,所以如果你想发送自定义消息,我想你应该添加它们sysmessages

http://msdn.microsoft.com/en-us/library/ms178592.aspx

或者另一种选择是使用THROW

http://technet.microsoft.com/en-us/library/ee677615.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读