在事务T-SQL中运行脚本

时间:2017-05-30 07:29:28

标签: 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

但是当我尝试在事务中运行脚本时,我会收到以下错误: ' BEGIN'附近的语法不正确。 ' TRY'附近的语法不正确。 接近' CATCH'。

附近的语法不正确

1 个答案:

答案 0 :(得分:0)

可能是错误的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”