2013-12-18 208 views
0

我當前使用sqlcmd在部署過程中的數據庫上執行腳本。現在有了多個數據庫,一個解決方案就是在批處理或foreach數據庫中使用這個腳本。與此相關的問題是,它一次將腳本應用於數據庫。我需要一些可以節省時間的東西。同時在多個數據庫上運行SQL腳本腳本(並行執行)

SQLCMD可以在並行的多個數據庫上執行腳本嗎?如果沒有,我是否可以利用腳本命令來完成此操作?

也有類似的問題,但沒有一個有正確的解決方案或壓力,它必須是並行執行方法,這是主要目標。 工具SQL多腳本正是如此,但它不是開放源碼,我更喜歡腳本。

任何想法? 在此先感謝。

回答

1

我能夠使用以下方法來完成此操作。

  1. 用戶將設置要在特定實例中部署的數據庫。
  2. Foreach數據庫它將生成一組SQLCMD命令foreach腳本來部署並將其放置在批處理文件中。

例如:然後用創建小號QLCMD_Commands_DB1.batSQLCMD_Commands_DB2.bat

  1. Foreach批處理文件將生成具有START命令的新的主批處理文件。

    START 「」 「SQLCMD_Commands_DB1.bat」 START 「」 「SQLCMD_Commands_DB2.bat」

  2. 執行主批處理文件將在並行部署數據庫的腳本。我寫了這個,它按預期工作。

1

如果您使用SSMS運行SQLCMD腳本,則可以使用組查詢來再次運行多個服務器。我不完全確定它是否平行運行。 Look here for more information

+0

謝謝。但是,我正在使用sqlcmd從命令行而不是通過SSMS。 – Geddon