2009-07-10 89 views
0

我有两个SQL Server(2000)数据库。两者都用于同一个项目,但版本不同。基本上,旧数据库来自我们的测试环境。新数据库来自开发环境。我们也有一个接受,生产和维护的环境,他们都包含同样的项目。 (这是我们的发展之路,从D到T到A到P,最后是M)比较数据库结构:如何创建SQL补丁?

现在,开发数据库结构已经改变了。添加了一些表格,索引被添加或删除,字段在类型中已经改变,并且可以为空的字段变成不可空的,类似的东西。测试数据库需要使用新结构进行升级,但不会丢失任何数据。现在,我正在做大量的体力劳动。我保留了一个结构变化列表,一旦一切就绪,我就编写一个更新脚本来修补旧的测试数据库。

但作为一名软件工程师,我只是懒洋洋地设计。那么,是否有一些简单的工具可以比较两个数据库结构并自行生成更新脚本?

(!只有改变结构,顺便说一句无数据操作)

回答

2

在工作中我们已经使用了一些工具; AdeptSql Diff,我们正在试用Redgate的东西。 AdeptSql比Redgate便宜很多,而Redgate有很多非常棒的花里胡哨的东西,既然我们已经拥有Adept,我们决定留下来。

http://www.adeptsql.com/

我很抱歉,我不知道任何免费的工具副手;我知道Redgate至少有一个试用期。

+0

不用担心。它不一定是免费的。它只需要匹配我的团队获得新软件许可证的预算。 :-) – 2009-07-10 14:15:43

3

是,最好的一个在我看来是Red Gate

他们提供的SQL工具列工具是非常好的,它包括的工具包,或者你可以得到它自己的SQL进行比较。不是免费的(除了14天的审判,我认为),但非常值得的钱

+0

+1,我们也一直在使用。 – 2009-07-10 14:18:55

1

我已经使用了一个名为sqlt-diff的命令行工具,它使用Perl SQL :: Translater(SQLFairy)来生成SQL数据库模式。

https://metacpan.org/pod/distribution/SQL-Translator/script/sqlt-diff

这是一个免费的开源工具。我没有手动编辑生成的差异来稍微定制它们。

+0

sqlt-diff是一款免费的开源工具。我没有手动编辑生成的差异来稍微定制它们。 – Endosynth 2012-01-27 17:01:38