比较两个 SQL Server 数据库(模式和数据)的最佳工具是啥? [复制]

Posted

技术标签:

【中文标题】比较两个 SQL Server 数据库(模式和数据)的最佳工具是啥? [复制]【英文标题】:What is best tool to compare two SQL Server databases (schema and data)? [duplicate]比较两个 SQL Server 数据库(模式和数据)的最佳工具是什么? [复制] 【发布时间】:2010-10-15 15:56:18 【问题描述】:

我也想比较两个 SQL Server 数据库,包括模式(表结构)和表中的数据。执行此操作的最佳工具是什么?

【问题讨论】:

是的:***.com/questions/193438/… SqlSever 2008R2 和 Sql Azure 有什么吗? 也不是重复的,因为另一个问题只要求一个表比较而不是一个数据库 xSQL 的Schema Compare 和Data Compare 工具怎么样。 SQL Server Express 完全免费,其他版本的价格非常合理。 我们能否获得一个工具来对标记为重复的用户投反对票,而无需费心发布原始链接。至少让用户有机会区分他们的问题和现有问题。这是排名最高的谷歌搜索 wrt 比较工具。它有优点 【参考方案1】:

我使用最新版本 Microsoft Visual Studio 2015 社区版(免费)或专业版/高级版/终极版中内置的架构和数据比较功能。像魅力一样工作!

http://channel9.msdn.com/Events/Visual-Studio/Launch-2013/VS108

Red-Gate 的 SQL 数据比较工具是我的第二种选择:

(来源:spaanjaars.com)

http://www.red-gate.com/products/sql-development/sql-compare/ http://www.red-gate.com/products/sql-development/sql-data-compare/

【讨论】:

我已经把这些放在我的桌面上多年了,但我什至不知道!感谢您的提示。 我还发现 Visual Studio 的数据和架构比较工具比 Red-Gates 的更好(它更准确地同步架构) VS2012 中缺少数据比较?来自 Microsoft 的更新:msdn.microsoft.com/en-us/jj650015 @OrionEdwards 这个工具也可以在 vs Professional 中使用。安装好了,效果很好! 在尝试使用内置工具将数据从我们的 Prod 数据库同步到 Test 数据库时,Visual Studio 2013 多次崩溃。它适用于小批量,但是当您尝试同步整个数据库时......好吧,祝你好运。 RedGate 的工具非常适合我,能够处理繁重的工作以同步整个数据库的数据。 (而且它似乎也更快。)【参考方案2】:

我喜欢Open DBDiff。

虽然不是最完整的工具,但它运行良好、免费且非常易于使用。

【讨论】:

简单、容易且有效。我选择将差异从一个数据库复制到另一个数据库。 这不比较DATA 这是我遇到的最差的数据库比较工具。它没有正确保存首选项,它经常被炸毁。它不会保存您使用过的 SQL 实例,然后每次都扫描网络以查找它随后列出的所有 PC - 因此您必须每次都复制和粘贴实例并坐下来等待网络扫描完毕才能使用它。这可能适用于非常小的数据库,但我无法让它工作一次和更大的数据库。它是免费的,但疟疾也是如此。 请注意,它可以比较数据,但仅限于单个表。我个人觉得这很有用,但如果您需要区分许多表或大型表,这可能还不够。 在 sql server 2014 中无法正常工作【参考方案3】:

我正在使用 Red-Gate 的软件: http://www.red-gate.com

【讨论】:

是的 - SQL 比较和 SQL 数据比较对我们的业务来说绝对是必不可少的 - 好东西。 贵吗? 300 美元,每年可以为您节省几十个小时。即使在全球最低的开发者价格下,这也很划算。 SQL Compare 多年来已成为一种更好的产品,但仍然不是最好的产品。在过去的 10 年里,我尝试了很多这样的工具,最好的一个是 SQL Delta,它具有非常准确的脚本生成器,第二个是 AdeptSql(只是因为它的数据比较工具在存在大量引用整数时无法正常工作。约束),红门与许多其他工具一起是遥远的第三门 该工具非常好 - 但正如之前所说的那样非常昂贵。我选择了替代方案——来自 Devart 的用于 SQL Server 的 dbForge 数据比较。功能几乎相同。它适合我的所有需求,而且便宜得多。 如答案中所述,此问题重复,此功能作为 TableDiff.exe 内置在 SQL Server 中。在购买许可证之前先尝试一下内置工具是值得的。【参考方案4】:

SQL Admin Studio 来自 http://www.simego.com/Products/SQL-Admin-Studio 现已免费,可让您管理 SQL 数据库、SQL 比较和同步数据比较和同步 等等。还支持 SQL Azure 和一些 mysql 支持。

[更新:是的,我是上述程序的作者,因为它现在是免费的,我只是想与社区分享]

【讨论】:

与一些付费产品相比,它的边缘有点粗糙,但它确实有效,而且便宜一点(因为它是免费的)+1。 Data Sync Studio 似乎不再免费了。 这不适用于 sqlite,仅供参考 simego.com/install/sql-tools 未找到 我从download.cnet.com/SQL-Admin-Studio-64-Bit/…得到了软件【参考方案5】:

我偏爱AdeptSQL。它干净且直观,而且它没有一个让我在许多类似程序中吓坏了的功能。您按下一个巨大的按钮,它会自动同步所有内容,而无需请假。如果您想同步更改,您必须自己进行,我喜欢这样做。

【讨论】:

+1 Adept SQL Diff 是一款出色的软件,而且相对便宜 我同意。它以非常方便的成本非常快速和可靠。我们在工作中使用它。 大声笑我知道 - 在 Visual Studio 工具中,同步按钮就在生成脚本按钮旁边。我还没有点击,但仍然害怕! 这是最好的工具之一...但不再可用,现在无法连接到某些 SQL 服务器。【参考方案6】:

有一个带有源代码的工具可在 http://www.codeproject.com/Articles/205011/SQL-Server-Database-Comparison-Tool

这应该提供灵活性,因为代码是可用的。

【讨论】:

【参考方案7】:

dbghost 是我迄今为止使用过的最好的。我见过的最好的功能之一是它会生成 SQL 代码,以便根据您保留在源代码控制中的 SQL 以及数据库在数据库版本之间进行切换。简单易用。

【讨论】:

我使用 DbGhost 已经 10 年了,它从未让我失望过。他们提供的支持是首屈一指的【参考方案8】:

我之前用过 SQL Delta (http://www.sqldelta.com/),真的很不错。但不是免费的,不知道价格与 Red-Gates 相比如何

【讨论】:

固体产品,用了几年了。漂亮的界面,不添加安装一大堆你可能不想要的垃圾。价格合理(单张许可证 370 美元)【参考方案9】:

试试 DBComparer,它免费且快速:

http://dbcomparer.com/

【讨论】:

这个工具非常有问题。例如,它对两个数据库进行逆向工程,然后抛出许多它声称不同的表和视图。然而,实际上不同的是 CREATE 脚本的外观。例如,它说一个视图是不同的,因为一个出现为:CREATE VIEW dbo.ViewName 而另一个数据库出现为 CREATE VIEW [dbo].[ViewName] 根本无法让它工作。从字面上看,即使在取消选择需要比较的大多数选项之后,也需要数小时来比较数据库。 不适用于 SQL Server 2000。 不比较数据【参考方案10】:

Database Workbench 也可以做到

http://www.upscene.com/products.dbw.index.php

跨数据库开发

使用架构比较和迁移 比较测试和部署的工具 数据库,迁移现有数据库 到不同的数据库系统。

你也可以用数据库比较器来做

http://www.clevercomponents.com/products/dbcomparer/dbcomparer.asp

我将它用于 Firebird,效果很好。

【讨论】:

【参考方案11】:

试试dbForge Data Compare for SQL Server。它可以比较和同步任何数据库,甚至是非常大的数据库。快速、简单、始终提供正确的结果。 在您的数据库上尝试并评论产品。

我们可以向您推荐一个可靠的 SQL 比较工具,它可以将您的 SQL Server 数据库中的表数据的比较和同步速度提高 3 倍。是dbForge Data Compare for SQL Server 和dbForge Schema Compare for SQL Server

主要优点:

更快速地比较和同步大型数据库 支持本机 SQL Server 备份 表、列和架构的自定义映射 调整比较和同步的多个选项 生成比较和同步报告

另外还有 30 天免费试用和无风险购买以及 30 天退款保证。

【讨论】:

请添加“完整披露”。 (Devart 制作 dbForge。) 我的选择是 Devart 的 SQL 数据和模式比较工具。 Red Gate 的产品也不错,但 Devart 的要便宜得多,也很专业。谢谢你们! 我用过这个,它对我很有用。到目前为止,我是一个粉丝。它根本不是免费的,而是免费试用。 可以证明,真的很好。【参考方案12】:

我们正在使用内部开发的解决方案,该解决方案基本上是一个过程,其中包含您希望包含在比较中的参数(SP、完整 SP 代码、表结构、默认值、索引、触发器等)

根据您的需求和预算,这可能也是适合您的好方法。

它也很容易开发,然后我们只需将程序的输出重定向到文本文件并在文件之间进行文本比较。

它的一个好处是它可以将输出保存在源代码管理中。

/B

【讨论】:

【参考方案13】:

我用过 Red Gate 的工具,它们很棒。 但是,如果您不能花钱,您可以尝试Open DBDiff 来比较架构。

【讨论】:

死链接。请提供另一个链接。 这个好像是:github.com/OpenDBDiff/OpenDBDiff【参考方案14】:

如果您使用 MSSQL,我肯定会选择 AdeptSQL。这是我尝试过的最不好看但最有才华的数据库比较工具。它可以比较结构和数据。它告诉您哪些表存在于一个 db 上但不存在于另一个,比较常见的结构和数据,它可以生成脚本来同步两者。它不是免费的,但有 30 天的试用期(据我所知)

【讨论】:

【参考方案15】:

我试过 OpenDiff Tool 。很棒的工具,免费且易于使用。

【讨论】:

以上是关于比较两个 SQL Server 数据库(模式和数据)的最佳工具是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

跨数据库和层比较 SQL Server 中的两个表

SQL SERVER 比较两个数据库中表和字段的差异

使用Red Gate Sql Compare 数据库同步工具进行SQL Server的两个数据库的结构比较同步

如何将两个不同数据库(MySQL、SQL SERVER)之间的 TEXT 字段与哈希值进行比较?

sqlserver数据怎么查询两个时间之间的数据

SQL Server 2012 简单恢复模式 - 崩溃后的恢复选项