是否有开源SQL Server DB比较工具?

时间:2008-08-22 16:26:31

标签: sql-server sql-server-2005 compare

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

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

12 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:12)

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:5)

它不是开源的,但是免费的(如啤酒):Sql Effects Accord (aka Clarity) Community Edition

答案 4 :(得分:4)

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

答案 5 :(得分:3)

阿罗哈

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

答案 6 :(得分:1)

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

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

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

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

答案 7 :(得分:1)

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

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

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

答案 8 :(得分:0)

嗯,我不知道。你总是可以将定义检索为SQL,然后对它们运行diff工具,但后面有点痛苦。

对此最好的解决方案可能是使用某种“迁移”工具,因此您可以将数据库定义与代码一起保存,并对其进行版本化等。

答案 9 :(得分:0)

更新

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

然而,到目前为止,我一直没能成功......

答案 10 :(得分:0)

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

SQL Delta将在其比较中遗漏一些触发器,并且它将采取动作列表中未找到的操作,并且有时会采取您不希望它采取的操作。这是以相当高的成本及时发现的。

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

答案 11 :(得分:0)

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

http://dbcompare.codeplex.com

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