从SQL Server 2008r2迁移到SQL Server 2012

时间:2014-11-13 11:53:38

标签: sql-server-2008-r2 sql-server-2012 database-migration raiserror

SQL Server 2012不支持RAISEERROR

RAISERROR 44444 'Field ''CostCodeId'' cannot contain a null value.'

如何更改语法以使其在sql server 2012中支持。任何替代方案请帮助。

2 个答案:

答案 0 :(得分:1)

在SQL 2012中,您应该使用THROW。

这是链接New THROW statement in SQL Server 2012

答案 1 :(得分:0)

对于任何新的开发工作,开始使用THROW,如果可能的话,开始用THROW替换RAISERROR,因为它可以在将来的任何时候更换(但我不认为在不久的将来)。

RAISERROR在SQL Server 2012中已被弃用,并被THROW取代,在新版本的SQL Server中可能完全被THROW取代。

对于RAISERROR,必须提供error_message,error_number,error + severity等参数,但是THROW都有可选项。 THROW从新的和改进的错误处理机制中获取所有这些信息,并在出现任何异常时将信息返回给用户。