[SQL Server]一次執行資料夾內的.sql 指令碼

來源:互聯網
上載者:User

標籤:

原文:[SQL Server]一次執行資料夾內的.sql 指令碼

初始資料庫時,我們Developers們會準備很多.sql指令碼來建立資料表、檢視甚至初始資料,那麽要怎麽一次執行資料夾內的*.sql或是指定的幾個.sql指令碼?

來節省一點點初始化資料庫的作業時間。

 

好在我們有MSDN使用sqlcmd 執行指令碼的範例:

sqlcmd -S myServer\instanceName -i C:\myScript.sql

如果只有幾個,串成bat檔或是powershell也很方便,但如果很多個,

一來要重複寫很多次,二來也沒辦法Handle到指定資料夾內的.sql都要執行的需求

 

很快的從網路找到答案,然後我們改寫了文法,並且把執行的log寫到指定的Log檔名中。

1.執行指定資料夾內的.sql

@echo offrem 資料庫IP\資料庫執行個體名稱set dbIp=stanley\SQL2014rem 資料庫名稱set dbName=TSQL2014rem 登入帳號set dbUsrAcc=ImDeveloperrem 使用者密碼set dbUsrPwd=Passw0rdrem 整理完畢的SQL指令集資料夾位置set batchFilePath="C:\TestDB\db_script\folder"rem 程式開始執行cd %batchFilePath%FOR /f %%i IN (‘DIR *.Sql /B‘) do call :RunScript %%iGOTO :END:RunScriptEcho Executing %1sqlcmd -S %dbIp% -d %dbName% -U %dbUsrAcc% -P %dbUsrPwd% -i %1 >>view.logEcho Completed %1:END

2.透過清單.sql檔案執行

list.sql 清單(sql01~06和bat檔同目錄)

:r .\sql01.sql :r .\sql02.sql :r .\sql03.sql :r .\sql04.sql :r .\sql05.sql :r C:\testDB\db_script\sql06.sql

批次檔內容

@echo offrem 資料庫IP\資料庫執行個體名稱set dbIp=stanley\SQL2014rem 資料庫名稱set dbName=TSQL2014rem 登入帳號set dbUsrAcc=ImDeveloperrem 使用者密碼set dbUsrPwd=Passw0rdrem 清單.SQL檔放置路徑set dbSqlFilePath="C:\test\db_script\list.sql"rem 程式開始執行cd %batchFilePath%sqlcmd -S %dbIp% -d %dbName% -U %dbUsrAcc% -P %dbUsrPwd% -i %dbSqlFilePath% >view.logPAUSE@echo on

 

今天同事來問,一整個忘記當初怎麽串的,快筆記下來。

 

參考:

使用 sqlcmd 串連至 Database Engine

使用 sqlcmd 執行 Transact-SQL 指令碼檔案

Run all SQL files in a directory

SQL Server – Executing Multiple Script Files Using SQLCMD

 

[SQL Server]一次執行資料夾內的.sql 指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.