SSIS 傳送 SQL Server 物件工作 (Transfer SQL Server Objects Task)

2021-04-17

筆記如何使用 筆記 SQL Server Integrated Service 傳送 SQL Server 物件工作的功能,藉由這個功能可以讓以往的搬資料、搬資料表、搬使用者、搬登入、搬預存程序,甚至是搬整個資料庫都變得輕鬆無比,同時也可以作為其他搬

SQL Server Logo

說明

搬移或者複製資料庫的物件有許多方式,例如:

備份並還原資料庫

最為方便,但僅能整個資料庫進行複製,無法針對資料庫中的個別物件。同時如果還原的資料庫伺服器與備份來源不同,必須要處理孤立使用者的問題。

備份資料庫

建立指令碼

可以選擇要複製的物件與資料,但操作手續略為繁瑣,但須要注意關聯的物件是否有建立成功。

建立指令碼

使用 SQL Server 匯入與匯出精靈

第一次使用可能會被 Provider 選擇給猶豫住,可以選擇立即執行或者建立為 SSIS 封裝,原理應該是與 SSIS 相容,建議用 SSIS 來設計會更容易維護與測試。

匯入與匯出精靈

使用 SSIS 的 DataFlow

使用 SSIS Data Flow


除了上述方式以外,還有本次所要介紹的傳送 SQL Server 物件工作 (Transfer SQL Server Objects)

傳送 SQL Server 物件工作

背後的原理是眾多的 T-SQL 所構成物件傳送工作,因此效能上不是最佳的選項。但這個方式擁有最高的設定彈性,可以設定特定資料表、預存程序、整個資料庫或者是使用者、登入,都可以明確的指令要複製的物件。

同時也支援 Replace 資料或者是 Append 資料的彈性,讓複製資料庫有著更精細、豐富的控制可能。

位置識別項不相符的問題

位置識別項不相符的問題

必須啟用「UseCollation」確保來源與目的所使用的定序相同。

啟用「UseCollation」

使用的 Connection

相比 DataFlow ,傳送 SQL Server 物件工作所使用的 Connection 方式是以 SMOServer 作為 Connection Manager Type;而在 DataFlow 中常見的 SQL Server Connection 是以 Ole DB 作為 Connection Manager Type。

參考資料

MSSQLTips - How to Copy a Table in SQL Server to Another Database

相關連結

SQL Server Integrated Service 初探

SQL Server 閃電般快速查詢指南⚡

SQL Server 周邊工具彙整筆記

SQL Server 學習資源筆記