我想比较两个SQL Server数据库,包括模式(表结构)和表中的数据。做这件事最好的工具是什么?
我使用内置在最新版本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/
我们正在使用内部开发的解决方案,基本上是一个过程,你想要的参数包括在比较(SP的,完整的SP代码,表结构,默认值,索引,触发器..等)
根据你的需求和预算,这对你来说也是一个好方法。
它也很容易开发,然后我们只需要将程序的输出重定向到文本文件,并在文件之间进行文本比较。
它的一个优点是可以将输出保存在源代码控制中。
/B
Dbghost是我迄今为止用过的最好的。我所见过的最好的特性之一是,它会生成SQL代码,根据您保存在源代码控制中的SQL,以及数据库,在不同的数据库版本之间切换。简单易用。
我偏爱AdeptSQL。它干净直观,没有让我在很多类似程序中害怕的特性。你按下一个巨大的按钮,它就会自动同步一切,而不需要这么多的提醒。如果你想同步这些变化,你必须自己做,我喜欢这样。
数据库工作台也可以做到
http://www.upscene.com/products.dbw.index.php
跨数据库开发 使用模式比较和迁移 比较测试和部署的工具 数据库,迁移现有数据库 到不同的数据库系统。
你也可以用数据库比较器
http://www.clevercomponents.com/products/dbcomparer/dbcomparer.asp
我把它用在Firebird上,效果很好。
如果你使用MSSQL,我肯定会使用AdeptSQL。它是我用过的最不好看的数据库比较工具,但却是最有天赋的。它可以比较结构和数据。它告诉您哪些表在一个db上存在,而在另一个db上不存在,比较常用数据库的结构和数据,并生成脚本来同步这两个数据库。它不是免费的,但有30天的试用期(据我所知)
尝试dbForge数据比较SQL Server。它可以比较和同步任何数据库,甚至是非常大的数据库。快速,简单,总是能得到正确的结果。 在您的数据库上尝试它并对产品进行评论。
我们可以推荐一个可靠的SQL比较工具,提供3倍快的比较和同步表数据在您的SQL Server数据库。它是dbForge数据比较SQL Server和dbForge模式比较SQL Server
主要优点:
更快速地比较和同步大型数据库 支持本地SQL Server备份 表、列和模式的自定义映射 有多个选项可调优比较和同步 生成比较和同步报告
免费试用30天,无风险购买,30天退款保证。
来自http://www.simego.com/Products/SQL-Admin-Studio的SQL Admin Studio现在是免费的,可以让你管理你的SQL数据库,SQL比较和同步,数据比较和同步等等。也支持SQL Azure和一些MySQL支持太。
[更新:是的,我是上述程序的作者,因为它现在是免费的,我只是想与社区分享它]
有一个工具的源代码可以在 http://www.codeproject.com/Articles/205011/SQL-Server-Database-Comparison-Tool
这将在代码可用时提供灵活性。
推荐文章
- 比较两个SQL Server数据库(模式和数据)的最佳工具是什么?
- 在SQL中,如何在范围中“分组”?
- 选项(RECOMPILE)总是更快;为什么?
- 设置数据库从单用户模式到多用户
- oracle中的RANK()和DENSE_RANK()函数有什么区别?
- 我如何转义一个百分比符号在T-SQL?
- SQL Server恢复错误-拒绝访问
- 的类型不能用作索引中的键列
- SQL逻辑运算符优先级:And和Or
- 如何检查一个表是否存在于给定的模式中
- 添加一个复合主键
- 如何在SQL Server Management Studio中查看查询历史
- SQL Server索引命名约定
- 可以为公共表表达式创建嵌套WITH子句吗?
- 什么时候我需要在Oracle SQL中使用分号vs斜杠?