SQL 資料轉 INSERT 語法-使用 Visual Studio
2 |
將資料表內容轉成一連串 INSERT 語法,是蠻好用的跨伺服器搬資料表招式,之前我最愛用的工具是 SQL Dumper,但昨天聽到不幸消息:官方網站人去樓空,連註冊的 DNS 網域都已棄守。
重新尋找替代方案,找到三種做法:
- SSMS 內建 Generate Script 功能
接著透過 Wizard 介面指定資料表並設定只輸出資料(Types of data to script: Data only)
由於當初設計可搬移整個 DB,故介面跟選項有點繁瑣,另外無法自訂查詢條件是一大缺點。 - SSMS Tools Pack
SQL Server Management Studio 的外掛套件,有不少方便的輔助功能,包含 Insert Statement Generator,功能挺強大,為付費軟體。 - SQL Server Data Tools in VS2015+
SSDT 是整合在 Visual Studio 2015+ 內的資料庫工具,可用於建置 SQL Server 關聯式資料庫、Azure SQL Database、Integration Services 封裝、Analysis Services 資料模型以及 Reporting Services 報表。SSDT 的資料表檢視工具有產生 INSERT 指令功能,這裡簡短示範:
在 Visual Studio 開啟 Server Explorer 視窗,在 Data Connections 清單建立資料庫連線,選擇要匯出資料的資料表透過右鍵選單選取「Show Table Data」:
資料檢視區上方工具列有兩個卷軸圖示,左邊的是產生 Script 並編輯,右邊則是直接匯出成檔案:
點選 Script 即可產生逐筆資料的 INSERT INTO 指令囉~(Script 還包含停用及啟用自動跳號,蠻貼心的)
支援簡單的 Filter 查詢條件,預設只顯示前 1000 筆,實務上可依需求調整。
經簡單試用,SSDT 的 INSERT Script 產生功能雖不及 SQL Dumper 簡潔方便,亦不失為可用的替代方案。
Comments
# by oaww
弱弱的問一下,用DB Link會不會比較快,還是因為不能用DB Link才會用SQL Script新增。
# by Jeffrey
to oaww, 哈,是的。有頭髮誰願意當秃子 :P 原則上建議優先使用 DB Link 或 Linked Server,但實務上 Linked Server 可能因網路未相接、權限不足、資安規定、執行權責… 等諸多因素無法建立, INSERT Script 可在各種惡劣狀況下達成使命,同時也方便歸檔存查,有一些不可取代的優勢。