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









 
沒有留言:
張貼留言