Sql server 比较数据库结构:如何创建SQL修补程序?

Sql server 比较数据库结构:如何创建SQL修补程序?,sql-server,lazy-evaluation,Sql Server,Lazy Evaluation,我有两个SQL Server(2000)数据库。两者都用于同一项目,但版本不同。基本上,旧数据库来自我们的测试环境。新数据库来自开发环境。我们还有一个验收、生产和维护环境,它们都包含相同的项目。(这是我们的开发街,从D到T再到A到P,最后是M。) 现在,开发数据库结构已经改变。添加了一些表,添加或删除了索引,字段的类型发生了变化,可为空的字段变得不可为空,诸如此类。测试数据库需要使用新结构进行升级,但不会丢失任何数据。现在,我做这件事需要大量的体力劳动。我保存了一个结构更改列表,一旦一切就绪,我

我有两个SQL Server(2000)数据库。两者都用于同一项目,但版本不同。基本上,旧数据库来自我们的测试环境。新数据库来自开发环境。我们还有一个验收、生产和维护环境,它们都包含相同的项目。(这是我们的开发街,从D到T再到A到P,最后是M。)

现在,开发数据库结构已经改变。添加了一些表,添加或删除了索引,字段的类型发生了变化,可为空的字段变得不可为空,诸如此类。测试数据库需要使用新结构进行升级,但不会丢失任何数据。现在,我做这件事需要大量的体力劳动。我保存了一个结构更改列表,一旦一切就绪,我就编写一个更新脚本来修补旧的测试数据库

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


(只是为了改变结构,顺便说一句,没有数据操作!)

看一看……一个完整的更安全的生活环境我们使用了一些工具;AdeptSql Diff和我们正在测试Redgate的一些东西。 AdeptSql比Redgate便宜得多,虽然Redgate有很多非常好的功能,但由于我们已经拥有Adept,我们决定继续使用它


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

是的,我认为最好的是


他们提供的SQL工具带非常好,其中包括一组工具,或者您可以自己获取SQL比较。不是免费的(我想除了14天的试用期),但是很值得花这笔钱

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


这是一个免费的开源工具。我确实手动编辑了生成的差异,对其进行了轻微的自定义。

不用担心。它不一定是免费的。它只需要与我的团队获得新软件许可证的预算相匹配即可。:-)SQLTDiff是一个免费的开源工具。我确实手动编辑了生成的差异,对它们进行了轻微的自定义。