SSIS 傳送 SQL Server 物件工作 (Transfer SQL Server Objects Task)
2021-04-17
筆記如何使用 筆記 SQL Server Integrated Service 傳送 SQL Server 物件工作的功能,藉由這個功能可以讓以往的搬資料、搬資料表、搬使用者、搬登入、搬預存程序,甚至是搬整個資料庫都變得輕鬆無比,同時也可以作為其他搬
說明
搬移或者複製資料庫的物件有許多方式,例如:
備份並還原資料庫
最為方便,但僅能整個資料庫進行複製,無法針對資料庫中的個別物件。同時如果還原的資料庫伺服器與備份來源不同,必須要處理孤立使用者的問題。
建立指令碼
可以選擇要複製的物件與資料,但操作手續略為繁瑣,但須要注意關聯的物件是否有建立成功。
使用 SQL Server 匯入與匯出精靈
第一次使用可能會被 Provider 選擇給猶豫住,可以選擇立即執行或者建立為 SSIS 封裝,原理應該是與 SSIS 相容,建議用 SSIS 來設計會更容易維護與測試。
使用 SSIS 的 DataFlow
除了上述方式以外,還有本次所要介紹的傳送 SQL Server 物件工作 (Transfer SQL Server Objects)。
傳送 SQL Server 物件工作
背後的原理是眾多的 T-SQL 所構成物件傳送工作,因此效能上不是最佳的選項。但這個方式擁有最高的設定彈性,可以設定特定資料表、預存程序、整個資料庫或者是使用者、登入,都可以明確的指令要複製的物件。
同時也支援 Replace 資料或者是 Append 資料的彈性,讓複製資料庫有著更精細、豐富的控制可能。
位置識別項不相符的問題
必須啟用「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