RAISERROR SQL Server 2014中的语法错误

时间:2017-07-14 00:37:03

标签: sql-server sql-server-2008-r2 sql-server-2014

我正致力于将SQL Server 2008 R2数据库迁移到SQL Server 2014.遇到以下触发器时遇到问题。新版本中不支持RAISEERROR的内容。

ALTER TRIGGER [dbo].[Route_ITrig] 
ON [dbo].[Route] 
FOR INSERT AS
    /*
     * PREVENT NULL VALUES IN 'RouteName'
     */
    IF (SELECT Count(*) FROM inserted WHERE RouteName IS NULL) > 0
    BEGIN
        RAISERROR 44444 'Field ''RouteName'' cannot contain a null value.'
        ROLLBACK TRANSACTION
    END

这是我遇到的错误

  

Msg 102,Level 15,State 1,Procedure Route_ITrig,Line 15
  ' 44444'

附近的语法不正确

1 个答案:

答案 0 :(得分:1)

这是一个SQL函数,因此必须在括号中传递所有必需的变量,如下所示:

RAISERROR(44444, 'Field ', 'RouteName', ' cannot contain a null value.')