我正在开发一个使用SQL Server 2005作为数据存储的开源项目。 我们需要一个DB比较工具来生成diff脚本,以便能够将DB从一个版本升级到另一个版本。

是否有一个开源或免费的SQL Server数据库差异工具,生成转换脚本?

===============>>#1 票数:16 已采纳

我认为Open DBiff做得很好。 它很简单,我使用SQL Server 2005/2008。

但只生成更改脚本。 没有更多,也没有更少。

===============>>#2 票数:12

在CodePlex上我昨天注意到你可以试试DbDiffhttp://www.codeplex.com/OpenDBiff )。 支持Sql2005和2008,我没试过。

===============>>#3 票数:6

我建议花一些钱购买Red Gate的SQL Compare工具,它可以很好地工作,甚至可以将数据库与Visual Studio数据库项目进行比较以生成升级脚本。 它快速且易于使用,并且运行良好。 升级脚本质量也不错。

它并不昂贵。 可能比你的时间便宜。 只要考虑一下你的每小时费用是多少,以及调查一个开源工具并使其工作(以及你已经花费了多少)可能需要多少小时,然后将它们相乘。 这就是“免费”工具真正耗费多少钱,这通常远远超过商业工具。

===============>>#4 票数:5

它不是开源的,而是免费的(如啤酒): Sql Effects Accord(又名Clarity)社区版

===============>>#5 票数:4

AdeptSQL Diff和DataDiff是很棒的产品,比RedGate便宜得多,而且UI更简化,我还没遇到它无法处理的场景。

===============>>#6 票数:3

阿罗哈

您可能想尝试SqlDbDiff 它可以生成更改脚本。 免费版做得很好。

===============>>#7 票数:1

有人试过xSQL Bundle(xSQL Data Compare和xSQL Object Compare)吗? 我们的地方只用于DB差异,没有同步,所以不能说同步,但差异和报告也不错。

此外,OpenDBDiff有一个分拆,不确定哪个更好 - http://code.google.com/p/sql-dbdiff/

任何人都知道这里提到的任何免费/开源数据库差异工具是否提供脚本/命令行界面来自动化差异和同步?

我查看了xSQL工具,它们提供了命令行访问,但遗憾的是,没有可编写脚本的命令将diff结果导出到(报告)文件。

===============>>#8 票数:1

虽然它不是你想要的,但我发现这是为了postgres:

http://mbk.projects.postgresql.org/

它不会生成要应用的差异,而是允许您将新版本表的完整转储与先前版本合并。

===============>>#9 票数:0

我们有SQL Delta和SQL Compare。 每个人都有优势,但每个人都有弱点,使他们非常痛苦。

SQL Delta将在其比较中遗漏一些触发器,它将采取动作列表中未找到的操作,并且有时会采取您不希望它采取的操作。 这是在很长的时间内发现的。

SQL Compare将捕获触发器,但它们嵌入在表列表中。 在大型数据库中,这意味着遍历每个表并筛选出来。 这个工具应该为我们隔离的东西。 再次,非常耗费时间。

===============>>#10 票数:0

嗯,我不知道。 您始终可以将定义检索为SQL,然后在它们上运行diff工具,但后面有点痛苦。

可能最好的解决方案是使用某种“迁移”工具,这样您就可以将数据库定义与代码保持在一起,并对它们进行版本控制等。

===============>>#11 票数:0

更新

在Sourceforge上我发现了Whiz SQL结构与此描述比较 :Whiz是一个数据库diff实用程序,可用于查找两个MS-SQL Server数据库之间的差异。 它还能够生成SQL脚本以将更改从一个数据库更新到另一个数据库。

但是到目前为止,我还没有成功地让它工作......

===============>>#12 票数:0

它有点晚了,但我刚刚在代码plex上发布了一个真正的简单项目:

http://dbcompare.codeplex.com

输入(或构建)两个连接字符串,它将比较所有表,视图和存储过程。

  ask by Guy translate from so

未解决问题?本站智能推荐:

6回复

SQL从行数据而不是列数据中选择MIN值

使用SQL 2005,有没有办法在一行数据中的5列之间选择最小值? 因此,如果我有一排这样的数据: 然后,如何使用SQL获得最低的价值?
1回复

如何在SQL Server 2005中比较DTS

一旦您的数据库从SQL Server 2000转换为SQL Server 2005,是否有任何方法可以比较两个服务器上的DTS,以查看它们是否基本相同? 我需要查看我的dev和prod是否相同,并且手动比较它们确实很耗时。 如果它们仍然在2000年,我可以使用Red-Gate工具DTS
4回复

SQL模式表比较

我正在寻找一个将比较2个SQL表的布局的应用程序。 在DEV环境中进行开发时,我需要一个工具来使生产表与DEV表(布局)完全相同。
1回复

用于比较DB结构MS ACCESS与SQL Server的工具?

我最近将MS Access数据库迁移到SQL Server,大部分都是导入得很好,但是如果可用的话,我希望找到一些数据类型的差异。 到目前为止我找到的工具将MS Access与MS Access或SQL Server与SQL Server进行比较。
2回复

从t-sql select中的日期比较中获取布尔值

我想知道在ms-sql(2005)中是否有可能出现以下内容 SELECT(expiry <getdate())AS过期FROM MyTable WHERE(ID = 1) 我基本上想要评估日期与布尔值的比较,这是否可能在语句的选择部分?
3回复

sql查询问题

我想相互比较两个日期和时间,并且我想选择“ StartTime”大于现在时间并且“ StartDate”大于现在日期的记录。 但是输出不正确。 我的纪录是: 输出为:当查询为:(1) 输出为:当查询为:(2) 正确的输出应为: 我用波斯语。
2回复

DATEADD - 我如何进行比较

我试图检查第二次尝试(你可以想象密码尝试,下载尝试等)是否在try1时间( @start )开始的时间限制( @window )内进行。 当其他日期时间比较与关系运算符一起使用时,为什么会报告语法错误 预期输出类似于0,但我Incorrect syntax near '<'.得到
7回复

DB比较工具

有人有数据库比较工具的经验吗? 你会推荐哪一个? 我们目前正在使用Redgate的“SQLCompare”,但我很想知道市场上是否有更好的工具。 主要要求是他们应该能够将脚本文件夹与实时数据库进行比较。 谢谢,迪米
2回复

是否可以在SQL Server中比较相似数据的行

是否可以在SQL Server中比较相似数据的行? 我在表中的公司名称列中,公司名称可能有些相似。 这是代表相同4家公司的8个不同值的示例: 我现在清理的方式是使用Google精简工具,在该工具中,我可以识别出具有相似数据值的簇,并将它们全部统一为一个。 在这个例子中,我只需要4个
3回复

如何在没有比较工具的情况下管理/跟踪对SQL Server数据库的更改

我以外包开发人员的身份从事一个项目,在该项目中,我仅能访问开发环境的测试和生产服务器。 要部署更改,我必须创建sql脚本,其中包含要在每个服务器上针对我希望部署的功能进行的更改。 例子: 当我对数据库进行每次更改时,我都会将脚本保存到文件夹中,但是有时这还不够,因为我发送了