上回我們對mssql-script有了初步的認識,並且透過pip安裝完成,下面我們稍微放慢腳步來發掘mssql-script指令項目已經產出的物件。
首先我們先來介紹mssql-script的基本語法,與sqlcmd一樣,都需要給定目標,項目如下:
-S→伺服器名稱(Server Name)
-U→使用者名稱(User Name)
-P→密碼(Password)
-d→資料庫名稱(DataBase Name)
-f→檔案路徑(FilePath)
將各項目組合後,語法如下:
mssql-scripter -S {Server} -U {User} -P {Password} -d {DataBase} {option} -f {FilePath}
這邊如果設定的檔案路徑已經有同名的檔案會直接覆蓋掉,若無則會產出新的檔案。
我們以之前產出的FirstDataBase為基準來產出FirstDataBase裡的資料結構以及資料內容的.sql腳本,同樣在我們的本機且不需要帳號密碼,另外從mssql-scripter的選項中選擇--schema-and-data,語法如下:
mssql-scripter -S . -d FirstDataBase --schema-and-data -f C:\temp\FirstDataBase_scripter.sql
執行成功後,我們可以看到在我們設定的路徑上產生了我們指定名稱的.sql腳本,裡面應包含資料表結構以及資料列。
另外我們可以再試試分別只含資料表結構以及資料表內容的語法(不加選項預設為只有資料表結構),語法如下:
mssql-scripter -S . -d FirstDataBase -f C:\temp\FirstDataBase_schema.sql
mssql-scripter -S . -d FirstDataBase --data-only -f C:\temp\FirstDataBase_data.sql
最後可以在語法內加入--display-progress觀看執行進度,語法如下:
mssql-scripter -S . -d FirstDataBase --display-progress -f C:\temp\FirstDataBase_schema.sql
到這邊我們已經能初步使用命令列完成產生指令碼功能,不過如果打開腳本看裡面的內容,會發現跟我們原先用SSMS產出的.sql腳本內容有一些不相同,後續我們再一步一步調整直到符合我們需求。
更多小知識,我們下次見~~