Sql server 如何对数据库架构进行版本控制?

Sql server 如何对数据库架构进行版本控制?,sql-server,sql-server-2008,schema,Sql Server,Sql Server 2008,Schema,是否有其他方法(廉价或FLOSS)来控制SQLServer2008DB模式的版本 在Visual Studio中为数据库创建数据库项目。将该项目检查为一个库系统,如SvN或Team Foundation Server。 < P>这是Jeff Atwood在上的一篇好文章。 您可以为此目的使用 以下是您可以购买的,也可以使用: SQL Change Manager每个实例995美元 清晰度标准从139美元起调整 从129美元起 sqlXpress Diff联系价格:-( 联系价格:-( SQ

是否有其他方法(廉价或FLOSS)来控制SQLServer2008DB模式的版本

在Visual Studio中为数据库创建数据库项目。将该项目检查为一个库系统,如SvN或Team Foundation Server。

< P>这是Jeff Atwood在

上的一篇好文章。 您可以为此目的使用

以下是您可以购买的,也可以使用:

SQL Change Manager每个实例995美元

清晰度标准从139美元起调整

从129美元起

sqlXpress Diff联系价格:-(

联系价格:-(

SQL源代码管理2003,从$199起

从180美元起

Evorex Source#共享软件或$299+(报告冲突!)


Edit刚刚找到这篇文章,它通过svn解释了版本控制:

根据我的经验,在企业环境中没有简单的选择

以下三种方法是主要选择(不考虑使用的工具集)

1) 将整个架构转储到文件中,并将文件存储在存储库中

优点:简单

缺点:大文件-难以手动编辑-很难看到自上一个版本以来发生了什么变化-无法部署它,因此需要一些机制来准备Dev和Test/Live系统之间的差异脚本

2) 将每个数据库对象转储到存储在存储库中的单独文件中

优点:很容易看出发生了什么变化。可以轻松地为大多数对象生成部署脚本(尽管有些事情仍然需要DIFF脚本,例如列定义更改)

缺点:必须按特定顺序运行脚本-管理该过程可能非常困难

3) 将每个更改视为一个单独的操作,并使用其自己的顺序编号SQL脚本

优点:开发人员很容易创建脚本,相同的脚本可以在每个平台上运行(理论上)

缺点:管理的噩梦-排序可能成为一个问题,很难看到发布中发生了什么变化,或者给定对象何时发生了变化


在运行了所有3个选项之后,我想说2非常适合使用,但首先需要花费很多时间来设置-以正确的顺序执行所有脚本需要花费很多时间-而且它仍然需要使用数据库差异工具来为UAT/Live生成脚本。因此,我现在建议在1和2之间进行混合。

+1:比我说“将DDL提交到版本控制(即:CVS、SourceSafe、SVN、Git等)”@OMG:是的,CSV和SourceSafe除外。不要在2011年使用它。我可以在现有数据库中使用它吗?我不知道他们是否已经修复了它-但是我们在使用数据库项目时遇到了重大问题-请参阅这篇关于增量更新数据丢失的文章。我们试过了-像大多数MS产品一样,我想如果你的整个开发系统都是以“微软方式”设置的话,它也可以工作-但是,在实践中,我们发现它非常有限,而且非常无用。这就是为什么我添加了一个链接,指向可用于实现相同功能的工具列表。红门SQL Compare是一个很棒的产品。我添加了一个链接到一篇SO帖子,该帖子解释了如何通过svn进行版本控制。。。在我编辑的答案中查看它