• <menu id="w2i4a"></menu>
  • logo dbForge Studio for MySQL教程

    文檔首頁>>dbForge Studio for MySQL教程>>數(shù)據(jù)庫管理工具dbForge Studio for SQL Server:如何在SQL Server中同步表

    數(shù)據(jù)庫管理工具dbForge Studio for SQL Server:如何在SQL Server中同步表


    dbForge Studio for SQL Server為有效的探索、分析SQL Server數(shù)據(jù)庫中的大型數(shù)據(jù)集提供全面的解決方案,并設(shè)計各種報表以幫助作出合理的決策。

    點擊下載dbForge Studio for SQL Server最新試用版

    數(shù)據(jù)庫同步是日常必需品。當您有多個服務(wù)于同一“用戶”的相似數(shù)據(jù)庫時,便需要定期使用它。

    典型的情況是,它們必須相同,但是您難以很好的操縱它們。例如,數(shù)據(jù)庫由不同的團隊管理,這些團隊可以獨立地更新它們?;蛘撸邢嗤臄?shù)據(jù)庫執(zhí)行不同的操作。所以,你必區(qū)別義它們?yōu)槭裁床煌?

    問題是,每當您必須比較兩個表之間的差異時,該過程就太復(fù)雜了。即使您的數(shù)據(jù)庫專家為一每種同步開發(fā)了一種工作方法,任何新的要求也將引起重大變化。您必須從頭開始工作。結(jié)果是,SQL Server表同步變成了一個過于復(fù)雜和耗時的工作。如果此任務(wù)是一次性的,那么它會變得更糟,因為它不能證明這樣做的合理性。

    盡管如此,仍然需要SQL Server同步任務(wù),并且這種需求帶來了供應(yīng)。不用準備冗長而復(fù)雜的說明,而是使用自動化工具。首先,它可以是一些內(nèi)置工具,例如SSIS。

    通過SSIS的單向同步包

    圖1表數(shù)據(jù)單向同步包

    第二種選擇是使用第三方工具,例如dbForge Data Compare for SQL Server。

    dbForge Data Compare用于比較表數(shù)據(jù)

    圖2比較SSMS中的表格數(shù)據(jù)

    在本文中,我們回顧了在SQL Server表同步過程中應(yīng)用自動化工具的過程。

    SQL Server中數(shù)據(jù)庫比較的標準方法

    比較從源服務(wù)器和目標服務(wù)器以及數(shù)據(jù)庫開始。配置它們:

    在SQL Server中設(shè)置數(shù)據(jù)庫比較的源和目標

    圖3設(shè)置源和目標

    設(shè)置表的列映射:

    設(shè)置表的列映射

    圖4列映射

    “列詳細信息”部分顯示來自兩個表的引用信息:源數(shù)據(jù)庫在左側(cè),目標數(shù)據(jù)庫在右側(cè)。

    列映射特別有用,因為源和目標中的列名不同。這樣,我們可以看到數(shù)據(jù)差異:

    源和目標之間的數(shù)據(jù)差異

    圖5數(shù)據(jù)差異

    另外,您還可以配置列的可見性和排序:

    在SQL Server中配置可見列和排序

    圖6列可見性和排序設(shè)置

    找到所有差異后,您可以生成腳本或執(zhí)行數(shù)據(jù)同步。

    重要!在比較或同步兩個表之間的數(shù)據(jù)之前,需要確保表定義匹配。您可以使用標準方法(例如Visual Studio或SSDT)或通過第三方工具來做到這一點。

    為此,創(chuàng)建一個新的SQL Server數(shù)據(jù)庫項目,如下所示:

    創(chuàng)建一個新的SQL Server數(shù)據(jù)庫項目

    圖7創(chuàng)建一個新的SQL Server數(shù)據(jù)庫項目

    接下來,導(dǎo)入數(shù)據(jù)庫:

    調(diào)用數(shù)據(jù)庫導(dǎo)入命令

    圖8打開數(shù)據(jù)庫導(dǎo)入窗口

    將打開一個新窗口。在該窗口中,您需要配置與必要數(shù)據(jù)庫的連接。

    之后,按Start以啟動導(dǎo)入過程:

    配置并啟動數(shù)據(jù)庫導(dǎo)入過程

    圖9配置并啟動數(shù)據(jù)庫導(dǎo)入過程。

    通過上述操作,您將在項目中看到文件夾,子文件夾和數(shù)據(jù)庫對象的定義:

    導(dǎo)入后包含文件夾,子文件夾和定義的項目

    圖10導(dǎo)入后的項目

    要創(chuàng)建項目并導(dǎo)入第二個數(shù)據(jù)庫的數(shù)據(jù),您應(yīng)該以相同的方式進行操作。

    要比較數(shù)據(jù)庫模式,只需單擊兩次即可:

    1. 右鍵單擊兩個項目中的任何一個;
    2. 在上下文菜單中單擊“Schema Compare…”。
    導(dǎo)航到數(shù)據(jù)庫模式比較窗口

    圖11導(dǎo)航到數(shù)據(jù)庫模式比較窗口

    它打開數(shù)據(jù)庫模式比較窗口。在此處,選擇源項目和目標項目,然后按“ Compare開始比較過程:

    在SQL Server中啟動架構(gòu)比較過程

    圖12數(shù)據(jù)庫模式比較窗口

    使用dbforge Schema Compare探索兩個表之間的SQL差異

    dbForge Schema Compare與SSMS集成。它是一個專用的解決方案,可以幫助您進行SQL數(shù)據(jù)庫比較和分析SQL數(shù)據(jù)差異。此外,它還允許您借助其嵌入式向?qū)лp松地同步SQL Server數(shù)據(jù)。

    將數(shù)據(jù)庫模式與集成到SSMS中的dbForge模式比較進行比較

    圖13在SSMS中比較數(shù)據(jù)庫模式

    數(shù)據(jù)比較的過程與上述相同。

    如何在SQL Server中找到兩個表之間的區(qū)別?

    1. 首先,為架構(gòu)比較配置源和目標:
      配置源和目標以進行模式比較
    2. 如果需要,在相應(yīng)的選項卡中設(shè)置表映射:
      選擇要映射的表
    3. 在表中配置字段映射并選擇要比較的列

      就像我們已經(jīng)注意到的那樣,“列詳細信息”部分顯示了兩個表的列中信息的定義。源數(shù)據(jù)庫在左側(cè),目標數(shù)據(jù)庫在右側(cè)。當源和目標中列的名稱不同時,可以匹配這種情況。

      在表中配置字段映射



    4. 查看數(shù)據(jù)庫中的定義差異

      比較架構(gòu)之后,您可以選擇必要的表并查看兩個數(shù)據(jù)庫中表定義的差異:

      兩個數(shù)據(jù)庫之間的表架構(gòu)比較

      請注意底部的代碼:

      • 在左下角,您將獲得源數(shù)據(jù)庫表的定義代碼。
      • 在右下角,您將看到目標數(shù)據(jù)庫的定義代碼。

    然后,您可以為任何架構(gòu)表生成同步腳本。

    dbForge Schema Compare是一個功能強大的工具。您可以使用它來比較數(shù)據(jù)庫并進行同步。您也可以借助此解決方案自動執(zhí)行SQL Server更新任務(wù)。對于任何用戶來說,這都是一種簡單而又方便的方式來完成通常耗費大量精力且過于復(fù)雜的工作。

    點擊下載dbForge Studio for SQL Server,并通過30天免費試用版自行檢查此功能!慧都現(xiàn)隆重推出“軟件國產(chǎn)化服務(wù)”活動,現(xiàn)dbForge Studio SQL Sever直降3000,在線訂購正版授權(quán)最低只要1710元!

    850×68.png

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();