SQL Server Schema Comparision (Compare SQL Server Schema With Visual Studio SSDT)

2022-10-08

說明如何使用 Visual Studio SSDT,來比較 SQL Server 不同資料庫的資料表 Schema,從而將開發環境的資料庫異動更新到正式環境的資料庫 😀

SQL Server Logo

Schema 比較

資料庫的 Schema 異動對於系統開發與維護而言,是在為頻繁不過的一件事情。如果是使用 Entity Framework Code First 的開發人員,對於資料庫的異動可以用程式的方式進行管理。而如果是 Database First 的開發人員,則需要有另外的機制紀錄資料庫的異動行為。

好在 Visual Studio SSDT 提供了資料庫 Schema 比較的功能,首先由 Visual Studio 的頁籤依序選擇 工具SQL Server 以及 新增結構描述比較

接著分別對來源資料庫 (開發環境的資料庫,最新的資料庫異動情形) 與目標資料庫 (正式環境的資料庫,尚未同步開發環境的資料庫異動) 進行連線設定。本次操作為簡化環境,都是使用 sysadmin 的身分對兩個資料庫進行連線,但實務上可以由開發人員將開發資料庫與正式資料庫 (只將 Schema 還原到開發環境) 進行比較,再將 Alter Script 提供給資料庫管理人員進行異動。

選擇「比較」後,就會開始進行分析,不用再自己產生資料庫的 Schema 或程式碼手工比較 😋

比較的結果很容易檢視,同時不論是資料表、檢視或者各種資料庫物件的異動都會被比較出來 (甚至只是預存程序多了一行註解),比較的結果如果有權限可以直接同步到正式環境,或者是產生出 Alter Script 提供給資料庫管理人員進行異動。

資料比較

Visual Studio 的 SSDT 同場加映提供了 資料比較 功能,操作的方式與 Schema 比較類似,提供了開發人員比較資料庫資料差別的一個新的選擇 😃


參考資料

Yowko's Notes 如何快速比對資料庫結構差異並產生同步指令

相關連結

SQL Server Integrated Service 初探

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

SQL Server 周邊工具彙整筆記

SQL Server 學習資源筆記