2017-05-30 14 views
0

可以在事務內部運行腳本嗎? 然後,我可以編輯腳本的路徑並以安全的方式運行它們。在事務內部運行腳本T-SQL

: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'附近語法不正確。

+0

哪個SQL版本? – SAS

+0

你從哪裏跑? SSMS? – SAS

回答

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」