iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0

問題

上回我們使用了script檔案去執行我們的SQL命令,使用的方式是直接將.sql檔案拉進SSMS裡面去執行(F5),但是使用滑鼠拖曳→更改目標資料庫→按F5執行這樣一系列的動作其實會有以下問題:
1.手動操作容易失誤,有可能造成資料被覆蓋或刪除
2.當有大量檔案需要被執行時,這些重複性動作會占用大量時間
3.當一個腳本執行的時間需要數分鐘時,你可能會希望它能連續執行,不用時刻盯著進度準備下一動

讓我們後續使用一些方法來解決上述的問題


sqlcmd

這次我們嘗試用其他方式去執行.sql檔案,我們使用跟上回相同的檔案進行操作,首先刪除上回執行腳本產生的內容,為避免介面操作,嘗試使用資料表的刪除語法,語法如下:

DROP TABLE {DataBase}..{Table}
DROP TABLE SecondDataBase..FirstTable
DROP TABLE SecondDataBase..SecondTable

接著開啟命令提示字元(CMD),我們要使用的是命令列為sqlcmd,安裝SSMS時即會安裝此命令列,當然也可以單獨安裝,安裝及說明連結,接下來我們先依照需要將命令列做簡單拆解,如下:

  • 使用的CLI:sqlcmd
  • 目標Server(-S)
  • 目標User(-U)
  • 目標Password(-P)
  • 目標DataBase(-d)
  • 匯入檔案處理(-i)

接著將所需要的命令列組合起來,語法如下:

sqlcmd -S {Server} –U {User} –P {Password} -d {DataBase} -i {FilePath}

在這邊我使用的是本機Server,所以不需要User和Password,另外我將.sql檔案放在C槽目錄下的temp資料夾中,最後將我們所需要的語法組合起來如下:

sqlcmd -S . -d SecondDataBase -i C:\temp\FirstDataBase.sql

按下Enter後即完成執行.sql腳本

更多小知識,我們下次見~~


上一篇
DAY 5 :SQL Server使用產生指令碼功能轉移資料
下一篇
DAY 7 :SQL Server利用PowerShell逐步執行命令列
系列文
沒有厲害的頭腦,也能利用腳本實現懶人寫程式的夢想30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言