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

sql-server – “THROW”附近的语法错误

发布时间:2020-12-12 08:42:17 所属栏目:MsSql教程 来源:网络整理
导读:IF @SQL IS NOT NULLBEGIN BEGIN TRY EXEC sp_executesql @SQL PRINT 'SUCCESS: ' + @SQL END TRY BEGIN CATCH SET @ErrorMessage = N'Error dropping constraint' + @CRLF + 'Table ' + @TableName + @CRLF + 'Script: ' + @SQL + @CRLF + 'Error message:
IF @SQL IS NOT NULL
BEGIN
    BEGIN TRY 
        EXEC sp_executesql @SQL
        PRINT 'SUCCESS: ' + @SQL
    END TRY 
    BEGIN CATCH
        SET @ErrorMessage = 
                    N'Error dropping constraint' + @CRLF
                    + 'Table ' + @TableName + @CRLF
                    + 'Script: ' + @SQL + @CRLF
                    + 'Error message: ' + ERROR_MESSAGE() + @CRLF
        THROW  50100,@ErrorMessage,1;
    END CATCH
END

当CATCH执行时,我得到以下错误:

Msg 102,Level 15,State 1,Line 257
Incorrect syntax near ‘THROW’.

用打印@ErrorMessage替换THROW.

用文字字符串替换@ErrorMessage变量可以工作.

然而,根据文档,THROW应该能够使用变量.不知道该怎么做

解决方法

从 MSDN:

The statement before the THROW statement must be followed by the semicolon (;) statement terminator.

(编辑:李大同)

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

    推荐文章
      热点阅读