開發的時候在測試伺服器上和線網伺服器上面都有我們的資料庫,當我們在線上網路上修改或新增一些欄位後,線網的資料庫也需要更新,這個時候根據表的修改記錄,然後在線網上面一個一個增加修改很浪費效率而且容易出錯,那有沒有更好的方法解決這個問題呢?有!那就是VS自備的架構比較功能。
個人覺得在初期一個開發除了掌握必要的開發知識外,對開發工具的使用和了解程度同樣是至關重要的。就想對API了解程度一樣,熟練的使用讓你開發起來得心趁手。
從Visual Studio 2005版本開始,VS就開始支援“比較和同步資料庫架構”,微軟如此早就實現這個功能說明這是一個我們會經常用到一個功能。這個功能我們自己也可以實現(在SQL Server中實作視圖、預存程序及表結構的比較),也可以將其打包成一個工具(自己開發MSSQL架構和資料比較小工具)。對於新手來說稍微麻煩一些,這裡就不做多說,有興趣的可以看看。
本次演練使用VS2017自帶的SQL Server工具比較兩個資料庫的架構並同步目標的架構和來源的架構。
我這裡有兩個資料庫,一個是本地的,一個是測試伺服器的。本次演練我將連接這兩個資料庫。
所謂的來源資料庫和目標資料庫也就是字面上的意思(來源>目標)將來源資料中新增修改的同步到目標資料庫中。
首先我們開啟VS>工具>SQL Server>新架構比較。
選擇來源
#我們選擇資料庫,點選選擇連線
連接來源伺服器並驗證,別忘記了選擇資料庫
選擇目標操作和選擇來源一樣
連接目標伺服器並驗證,別忘記了選擇資料庫
來源資料庫和目標資料庫都選擇完成之後,點選左上角「比較」開始比較兩個資料庫
下面就是來源資料庫和目標資料庫的差異
比較完成後選擇左上角的更新,就會更新我們選擇要更新的欄位資料(圖中紅標圈住的欄位)
資料的同步其實就是差異產生對應的腳本,然後在目標資料庫執行。選擇檢視結果就可以看到部署腳本
看到提示我們知道更新完畢了。然後我們再執行「比較」看一下差異。
這時候我們會發現剛才同步的已經同步完成了,如果想全部同步,全部勾選就是啦,架構比較就是這麼簡單,本次演練就到這裡。
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; 执行批处理时出错。
以上是Visual Studio2017資料庫架構介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!