自动生成数据库更改脚本

thi*_*ijs 13 t-sql sql-server sql-server-2005 team-build visual-studio-2008

我正在寻找一种方法来自动生成数据库的更改脚本.

目前我们使用Visual Studio 2008数据库版本,它具有Schema Compare选项,但我没有看到自动化这些操作的方法.

我想要做的是在我的每日构建期间创建一个旧的和新的数据库,并且模式比较生成一个更改脚本,用于这两者之间的差异.(架构和过程的差异,查找表可以删除并重新创建没有问题)

有没有人知道解决方案,或者我要写几英里的脚本来实现这一目标?

除了Microsoft工具之外,使用任何付费产品都不是这里的选择......

根据反馈更新:

  • 我有各种大小的各种数据库,但所有更改都将以受控方式发生,同时了解已存​​在的数据.
  • 只有"简单"的变化应该自动处理,我正在考虑添加列和表(非常常见).列可能永远不会被删除(因此,如果发生这种情况,工具/脚本可能会抗议)

sho*_*ver 7

与@Anton Gogolev正在做的类似,我们使用的工具允许您在XML文件中编写迁移.我们使用的工具叫做Liquibase,它支持许多不同的DBMS风格.我们不仅在内部在开发人员模式中使用它,我们还在客户运行的升级安装期间在外部使用它.


小智 5

希望我仍然可以提供帮助:

您应该可以使用任何支持命令行界面的良好数据库比较工具来执行此操作.在这种情况下,您必须创建一个简单的bat脚本并将其添加到任务计划程序.

我知道ApexSQL Diff支持这个功能,我很确定来自Red Gate的SQL Compare在专业版中具有相同的选项.