Met*_*hor 24 t-sql sql-server sql-server-2014
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
Run Code Online (Sandbox Code Playgroud)
当CATCH执行时,我得到以下错误:
消息102,级别15,状态1,行
257'THROW'附近的语法不正确.
更换THROW用PRINT @ErrorMessage作品.
@ErrorMessage用文字字符串替换变量有效.
然而,根据文档,THROW应该能够采用变量.不知道该怎么做.
我只是遇到了同样的错误,但出于完全不同的原因。我使用的机器有点旧,但有 SSMS 2012(THROW引入的版本)。然而,实际的 SQL 服务器是 10.5(即 2008 R2;请参阅https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level)等等命令无效。
希望不会有太多十年前设置的实例,但请仔细检查您是否收到此信息,并确定您的语法是正确的!
| 归档时间: |
|
| 查看次数: |
10002 次 |
| 最近记录: |