sql-server - 自动生成数据库更改脚本

标签 sql-server visual-studio-2008 sql-server-2005 tsql tfsbuild

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

目前我们使用 Visual Studio 2008 数据库版本,它具有架构比较选项,但我没有找到自动化这些操作的方法。

我想做的是在日常构建期间创建一个旧的和一个新的数据库,并让模式比较为这两者之间的差异生成一个更改脚本。 (架构和过程的差异,可以删除并重新创建查找表,不会出现问题)

有谁知道解决方案,或者我是否要编写大量脚本来实现此目的?

这里不可以使用除 Microsoft 工具之外的任何付费产品...

根据反馈进行更新:

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

最佳答案

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

关于sql-server - 自动生成数据库更改脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2253132/

相关文章:

sql-server - 如何使用sql找出存储过程的依赖关系

sql - 从没有唯一标识的重复记录中获取第一条记录

sql - TRIM 不是可识别的内置函数名称

asp.net - 我如何知道正在浏览的网站的位置?

c++ - 未按描述收到事件通知

c++ - 从 VS2008 迁移到 VS2010 时要记住的事情

sql-server-2005 - 如何将每个 nvarchar 列更改为 varchar?

sql - 编写一个 T-SQL 查询来过滤包含 NCHAR(2028) 的记录

asp.net - .NET SQL 连接池如何在多节点环境中扩展?

sql-server - 如何仅使用 tsql 生成 'create table script'。我在 Linux 机器上使用 freeTDS 工具来访问位于远程的 sql server