Visual Studio2017 數據庫架構比較

一、前言

開發的時候在測試服務器上和線網服務器上面都有我們的數據庫,當我們在線網上面修改或者新增一些字段後,線網的數據庫也需要更新,這個時候根據表的修改記錄,然後在線網上面一個一個增加修改很浪費效率而且容易出錯,那有沒有更好的方法解決這個問題呢?有!那就是VS自帶的架構比較功能。

個人覺得在初期一個開發除了掌握必要的開發知識外,對開發工具的使用和了解程度同樣是至關重要的。就想對API瞭解程度一樣,熟練的使用讓你開發起來得心趁手。

二、關於

Visual Studio 2005版本開始,VS就開始支持“比較和同步數據庫架構”,微軟如此早就實現這個功能說明這是一個我們會經常用到一個功能。這個功能我們自己也可以實現(在SQL Server中實現視圖、存儲過程及表結構的比較),也可以將其打包成一個工具(自己開發MSSQL架構和數據對比小工具)。對於新手來說稍微麻煩一些,這裏就不做多說,感興趣的可以看看。

三、開始演練

本次演練使用VS2017自帶的SQL Server工具比較兩個數據庫的架構並同步目標的架構和源的架構。

1.準備兩個要比較的數據庫

我這裏有兩個數據庫,一個是本地的,一個是測試服務器的。本次演練我將連接這兩個數據庫。

2.連接源數據庫和目標數據庫

所謂的源數據庫和目標數據庫也就是字面的意思(源>目標)將源數據中新增修改的同步到目標數據庫中。

首先我們打開VS>工具>SQL Server>新建架構比較。

image

選擇源

image

我們選擇數據庫,點擊選擇連接

image

連接源服務器並驗證,別忘記了選擇數據庫

image

選擇目標 操作和選擇源一樣

image

連接目標服務器並驗證,別忘記了選擇數據庫

image

3.比較源數據庫和目標數據庫

源數據庫和目標數據庫都選擇完成後,點擊左上角“比較”開始比較兩個數據庫

image

下面就是源數據庫和目標數據庫的差異

image

4.更新目標數據庫

比較完成後選擇左上角的更新,就會更新我們選擇要更新的字段數據(圖中紅標圈住的字段)

image

image

數據的同步其實就是差異生成對應的腳本,然後在目標數據庫執行。選擇查看結果就可以看到部署腳本

image

看到提示我們知道更新完畢了。然後我們再執行“比較”看一下差異。

image

這個時候我們會發現剛纔同步的已經同步完成了,如果想全部同步,全部勾選就是啦,架構比較就是這麼簡單,本次演練就到這裏。

四、常見的問題

1.爲什麼我的界面和你的不一樣
答:我這vs2017帶的工具,相比較其他版本可能會存在些差異,但是大體操作是一樣的。

2.爲什麼有些我會更新失敗
答:這個問題我也遇到過,這是因爲可能因爲這個操作會導致目標數據丟失,或者是因爲權限不足等原因。這個我是手動操作的,你們要是知道好的解決辦法可以留言給我哦。

(48,1): SQL72014: .Net SqlClient Data Provider: 消息 50000,級別 16,狀態 127,第 6 行 檢測到行。由於可能丟失數據,正在終止架構更新。
(43,0): SQL72045: 腳本執行錯誤。執行的腳本:
IF EXISTS (SELECT TOP 1 1
           FROM   [dbo].[CR_ClassRingNewsFeed])
    RAISERROR (N'檢測到行。由於可能丟失數據,正在終止架構更新。', 16, 127)
        WITH NOWAIT;

執行批處理時出錯。

參考:演練:比較兩個數據庫的架構

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章