mssql-scripter 工具介紹

更新 發佈閱讀 8 分鐘

安裝工具

需先安裝 Python 3

pip install mssql-scripter

參數說明

僅列出有使用到的參數及說明,其餘可參考 github:mssql-scripter 

-S , --server           DB伺服器名稱

-d , --database DB名稱

-U , --user 登入DB的使用者名稱
如果不輸入,預設使用 Windows Authentication 登入

-P , --password 登入DB的密碼
可以透過設置環境變數 MSSQL_SCRIPTER_PASSWORD 設定,避免明文

-f , --file-path T-SQL 語法儲存路徑

--file-per-object 由預設將所有指令匯出成1個.sql檔,
改為將每個物件的操作個別匯出成.sql檔。

--data-only 由預設只產出 CREATE schema 的腳本語法,
改為只產出 INSERT 所有資料的腳本語法。

--schema-and-data 由預設只產出 CREATE schema 的腳本語法,
改為產出包含 CREATE schema 和 INSERT 所有資料的腳本語法。

--script-create 編寫物件 CREATE 語句的腳本。

--script-drop 編寫物件 DROP 語句的腳本。

--script-drop-create 編寫物件包含 CREATE 和 DROP 語句的腳本。

--target-server-version 指定輸出的 T-SQL 語法要相容於哪個 SQL Server 版本
2005, 2008, 2008R2, 2012, 2014, 2016, vNext, AzureDB, ...

--exclude-types 要從腳本中排除的指定類型的資料庫物件。

--check-for-existence 在刪除或更改之前檢查具有給定名稱的物件是否存在,
或者在創建之前檢查具有給定名稱的物件不存在。

--exclude-use-database 不生成 USE [DATABASE] 語句。

--display-progress 顯示 mssql-scripter 執行進度

情境範例

情境 1

      1. 使用 Windows (AD) 驗證登入
        位址:192.168.xxx.xxx
      2. 編寫 T-SQL 語法
        資料庫:DBName
        條件:僅含結構描述
      3. 將 T-SQL 語法儲存
        檔名:schema.sql
mssql-scripter -S '192.168.xxx.xxx' -d 'DBName' > 'schema.sql'


情境 2

      1. 使用 SQL Server 驗證登入
        位址:192.168.xxx.xxx
        名稱:admin
        密碼:S{L5ENHnD~ZD
      2. 編寫「僅含資料」的 T-SQL 語法
        資料庫:DBName
        條件:僅含資料
      3. 將 T-SQL 語法儲存
        路徑:D:\mssql-scripter\data.sql
mssql-scripter -S '192.168.xxx.xxx' -U 'admin' -P 'S{L5ENHnD~ZD' -d 'DBName' --data-only -f 'D:\mssql-scripter\data.sql'
註:可透過設置 MSSQL_SCRIPTER_PASSWORD 環境變數來避免密碼明文
SET MSSQL_SCRIPTER_PASSWORD='S{L5ENHnD~ZD'
mssql-scripter -S '192.168.xxx.xxx' -U 'admin' -d 'DBName' --data-only -f 'D:\mssql-scripter\data.sql'


情境 3

      1. 使用 Windows (AD) 驗證登入
        位址:192.168.xxx.xxx
      2. 編寫 T-SQL 語法
        資料庫:DBName
        條件1:含結構描述
        條件2:每個物件 1 個檔案
      3. 將 T-SQL 語法儲存
        路徑:D:\mssql-scripter\data
      4. 顯示執行進度
mssql-scripter -S '192.168.xxx.xxx' -d 'DBName' --schema-and-data --file-per-object -f 'D:\mssql-scripter\data' --display-progress
註1:--file-per-object 將每個物件個別建立檔案,可作為資料庫版控用途
註2:-f 給定的資料夾路徑要確保沒有任何檔案存在,否則無法執行


情境 4

      1. 使用 Windows (AD) 驗證登入
        位址:192.168.xxx.xxx
      2. 編寫 T-SQL 語法
        資料庫:DBName
        條件1:含結構描述與資料
        條件2:每個物件 1 個檔案
        條件3:包含 DROP 與 CREATE 語句
        條件4:排除 DATABASE 類型的物件
        條件5:避免產生 USE [DBName] 語句
      3. 將 T-SQL 語法儲存
        路徑:D:\mssql-scripter\data_
      4. 顯示執行進度
mssql-scripter -S '192.168.xxx.xxx' -d 'DBName' --schema-and-data --file-per-object -f 'D:\mssql-scripter\data_' --script-drop-create --exclude-types 'DATABASE' --exclude-use-database --display-progress


情境 5

      1. 使用 Windows (AD) 驗證登入
        位址:192.168.xxx.xxx
      2. 編寫 T-SQL 語法
        資料庫:DBName
        條件1:含結構描述與資料
        條件2:每個物件 1 個檔案
        條件3:包含 DROP 與 CREATE 語句
        條件4:DROP 與 CREATE 語句加入是否存在要刪除物件的判斷
        條件5:排除 DATABASE 類型的物件
        條件6:避免產生 USE [DBName] 語句
      3. 將 DROP T-SQL 語法儲存
        路徑:D:\mssql-scripter\app_v1\drop
      4. 將 CREATE T-SQL 語法儲存
        路徑:D:\mssql-scripter\app_v1\create
mssql-scripter -S '192.168.xxx.xxx' -d 'DBName' --schema-and-data --file-per-object -f 'D:\mssql-scripter\app_v1\drop' --script-drop --check-for-existence --exclude-types 'DATABASE' --exclude-use-database
mssql-scripter -S '192.168.xxx.xxx' -d 'DBName' --schema-and-data --file-per-object -f 'D:\mssql-scripter\app_v1\create' --script-create --check-for-existence --exclude-types 'DATABASE' --exclude-use-database

參考資料

    1. github:mssql-scripter 
    2. 介紹好用工具:mssql-scripter (自動將完整資料庫匯出成 T-SQL 的神器) 
留言
avatar-img
UN的知識庫
0會員
1內容數
第一次嘗試寫知識、資訊分享型的部落格 不確定效果如何,請大家多多包涵!
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
本文詳細介紹Windows cmd指令的應用,並提供了例說明及追加說明,用戶可以學習如何使用cmd指令對檔案進行處理、選取所需的內容,以及擴展運用到其他類型的檔案,最後還介紹了cmd設計完成後的應用和自動化執行方式。
Thumbnail
本章節旨在介紹TypeScript的基本語法,包括一般結構、程式進入點、註解以及變數的定義和賦值。這些知識將幫助讀者瞭解TypeScript的基本架構,並且可以開始使用TypeScript進行開發。
Thumbnail
本章節旨在介紹TypeScript的基本語法,包括一般結構、程式進入點、註解以及變數的定義和賦值。這些知識將幫助讀者瞭解TypeScript的基本架構,並且可以開始使用TypeScript進行開發。
Thumbnail
TypeScript是一種由Microsoft開發和維護的開源編程語言。它是JavaScript的超集,主要擴展了JavaScript的語法,增加了靜態類型檢查和其他特性,使得開發大型應用程序更為方便和可靠。
Thumbnail
TypeScript是一種由Microsoft開發和維護的開源編程語言。它是JavaScript的超集,主要擴展了JavaScript的語法,增加了靜態類型檢查和其他特性,使得開發大型應用程序更為方便和可靠。
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News