2013-03-07 50 views
2

我必須在數據庫服務器上執行大量腳本,我可以在批處理的幫助下執行它,但此數據庫服務器有多個數據庫,因此對於每個數據庫書面下文提到的腳本 - EX-使用單個腳本在不同數據庫上執行大量腳本

數據庫name1-

for %%G in (*.sql) do sqlcmd /S [Server] /d [A] -E -i"%%G" pause 

數據庫name2-

for %%G in (*.sql) do sqlcmd /S [Server] /d [B] -E -i"%%G" pause 

我有沒有辦法讓我不必爲每個數據庫名都寫這個.bat文件?我想編寫適用於所有數據庫的單一腳本...

+0

那麼[server]和[A]/[B]的實際值是什麼? – jonbonazza 2013-03-07 17:39:06

回答

1

您可以將您的腳本更改爲:

for %%G in (*.sql) do sqlcmd /S %1 /d %2 -E -i"%%G" pause 

然後在啓動bash腳本時傳入服務器和數據庫名稱。例如,如果您的腳本被稱爲「myscript.bat」,那麼您可以通過命令行啓動它

> myscript.bat server name 
+0

你能看看我更新的問題嗎?實際上數據庫名稱不遵循任何模式.. – Praveenks 2013-03-07 15:32:56

+0

我編輯了我的答案,以反映我相信你試圖代表什麼,但請參閱我對你的評論問題。 – jonbonazza 2013-03-07 17:41:24

+0

謝謝,它的工作很好。我有一個更多的查詢..通常如果我必須執行任何文件夾的文件,我必須把我的批處理文件,並有許多子文件夾,所以我必須粘貼我的蝙蝠文件在每個文件夾。 。有沒有辦法讓我的蝙蝠文件只能放在一個位置,並執行子文件夾? – Praveenks 2013-03-08 04:07:44

相關問題