在事务T-SQL中运行脚本

在事务T-SQL中运行脚本,sql,tsql,transactions,migration,Sql,Tsql,Transactions,Migration,是否可以在事务中运行脚本? 然后我可以编辑脚本的路径并以安全的方式运行它们 :setvar ScriptPath "C:\Script1.sql" BEGIN TRY BEGIN TRANSACTION :r $(ScriptPath) COMMIT TRANSACTION PRINT 'Successfull' END TRY BEGIN CATCH PRINT 'Error' ROLLBACK TRANSACTION END CATCH

是否可以在事务中运行脚本? 然后我可以编辑脚本的路径并以安全的方式运行它们

:setvar ScriptPath "C:\Script1.sql"
BEGIN TRY
    BEGIN TRANSACTION
        :r $(ScriptPath)
    COMMIT TRANSACTION
    PRINT 'Successfull'
END TRY
BEGIN CATCH
    PRINT 'Error'
    ROLLBACK TRANSACTION
END CATCH
但是,在尝试在事务中运行脚本时,我会出现以下错误: “BEGIN”附近的语法不正确。 “TRY”附近的语法不正确。
“CATCH”附近的语法不正确。

可能是错误的SQL版本-您使用的是哪个版本

您的包含脚本内容可能有问题

另外,请确保启用了SQLCMD模式

以下作品选1:

:setvar ScriptPath "C:\temp\Script1.sql"
BEGIN TRY
    BEGIN TRANSACTION
         :r $(ScriptPath)
    COMMIT TRANSACTION
    PRINT 'Successfull'
END TRY
BEGIN CATCH
    PRINT 'Error'
    ROLLBACK TRANSACTION
END CATCH

文件C:\temp\Script1.sql包含SELECT 1

哪个sql版本?从哪里运行?SSMS?