代码之家  ›  专栏  ›  技术社区  ›  ChrisW

如何验证两个SQL Server数据库是否包含相等的数据?

  •  4
  • ChrisW  · 技术社区  · 17 年前

    对于已知具有相同模式的两个MS SQL数据库,如何判断它们是否包含相同的数据副本?

    我正在使用MS SQL Server 2008 Express,并使用ADO.NET API在.NET框架的C和V2.0中进行编码。这两个数据库实例都在同一个SQL Server上。

    背景:我已经编写了将数据从数据库导出到一组文件中的软件,并从这些文件中重新导入数据(到数据库的另一个副本中);我想测试在往返过程中是否丢失了任何数据(更具体地说,在初始导出过程中是否丢失或留下了任何数据)。

    我想这是一种粗俗的方式 SELECT * 从每个数据库中的每个表,然后使用客户端代码比较选定的记录集。有没有另一种方法需要更少的客户端代码?

    我已经找到了有关备份和恢复数据库以及选择和插入数据的文档,但是没有注意到关于如何验证/证明往返完全成功,即如何验证两个数据库中一个表的两个副本是否包含相同的数据。

    3 回复  |  直到 12 年前
        1
  •  1
  •   ChrisW    17 年前

    第一步是比较记录计数。你可以用快速

    select count('x') from TAbleY
    

    每一张桌子都需要这样做。

    为了比较表中的数据,我将使用 CHECKSUM 功能。

        2
  •  1
  •   erlando    17 年前

    雷德盖特 SQL Data Compare 可能是答案。

        3
  •  1
  •   mimix    12 年前

    您可以使用Redgate SQL数据比较 1>它将显示数据库中每个表中的数据总数。 2>它将生成一个脚本,该脚本将显示其中的不同数据,以便通过执行该脚本可以使数据相同。 3>它将通过SQL比较显示架构是否不同 4>许多功能都很有用,您还可以同步两个数据库。

    除此之外,Visual Studio 2012还为您提供了一个比较数据的选项,您也可以尝试