Visual Studio Sql Server DB Schema Compare DB Schema
▌Introduction
在迭代式專案開發的過程,需要持續的佈署開發的產品到測試環境,程式打包的部分問題比較小; 但是如果需要更改目標環境的資料庫結構(Database schema)時, 在不遺失資料的前提下,就必須注意建立、更改資料表和欄位的順序以及相依性(如 : Foreign key)。
這時候,使用Visual Studio所提供的「Sql Server : 新增結構描述比較」 (Comparing Database Schemas) 就可以輕鬆比對出開發和測試資料庫兩邊的差異, 然後做同步。 當然了, 在一些Foreign key和NOT NULL欄位的限制下, 過程中還是難免需要手動備份資料再還原的情況; 但是在Comparing Database Schemas的GUI下作業,過程可是比完全由自己比對下指令查詢和更新愉快多了。
▌Environment
▋ Visual Studio 2015
Update 3
▋ Sql Server 2012
▌How
▋開啟 【工具】→【SQL Server】→【新增結構描述比較…】
選擇左邊的「來源資料庫」和右邊的「目標資料庫」。
點選「比較」
稍等一下後,就會看到兩邊比對的結果,在動作這個欄位可以看出物件是否要進行新增、刪除或更新。
還可以往下一層看到欄位和索引鍵,
工具列提供以下功能:
功能
|
說明
|
|
1
|
比較
|
比對兩邊差異
|
2
|
更新
|
更新目標資料庫
|
3
|
產生指令碼
|
產生所選取的差異指令sql (如下圖)
如果需要更改sql或加入sql,可利用此功能先產生指令後,在直接修改並執行。 |
4
|
選項
|
可設定「以單一使用者執行」、「變更前備份」…等選項。
|
5
|
群組結果
|
排序差異。
|
在最單純無Foreign key及其他相依的情況下,選擇所有差異並點選「更新」就可以完成從來源資料庫同步Schema到目標資料庫的工作;
然而,大部分情況下,我們還是必須自行決定那些差異可以先執行(例如:新增mapping tables …)或處理備份及還原資料。
PS.
如果我們需要快速的產生既有資料的insert
sql,可以利用伺服器總管連接到資料庫後,選擇該資料表並右鍵選擇【顯示資料表資料】, 在資料列上右鍵【指令碼】,就可以很快的產生insert sql。
▌Reference
沒有留言:
張貼留言