数据库部署并使用vs2010中的数据库项目应用发布补丁

时间:2012-01-03 06:10:22

标签: c# sql visual-studio-2010 database-project

我想知道我们是否可以限制VS2010数据库项目生成的部署脚本,使其仅包含已修改的数据库对象,而不包含整个drop和create序列。

例如,在合并连续更改后,下一个版本脚本必须只包含已修改的存储过程,函数或表。我尝试取消选中“Always Recreate Database”选项。但是它只是为整个数据库创建一个脚本。

我试图找到类似的问题,我发现了一些接近我需要的问题,但仍然没有解决我的问题。

3 个答案:

答案 0 :(得分:1)

我们会根据偏好和控制原因手动跟踪所有更改,并保留更新数据库的脚本(我的答案here on SO概述了我们的步骤),但我们也使用了RedGate的SQL PackagerSQL CompareSQL Data Compare产品满足我们的一些需求。

最初它们价格昂贵,但在我们的组织中已经超过了自己。

答案 1 :(得分:1)

通过将“已编译”项目(.dbschema文件)与要部署到的数据库进行比较,然后创建更改脚本来部署数据库项目。有关如何创建更改脚本的选项有很多,但基本原则是始终创建“实时”更改脚本。它只会包含部署工具认为不同的内容。

答案 2 :(得分:0)

问题是这根本不起作用,因为它无法处理每个定义的任何类型的字段重命名。向导无法知道文件是否已重命名,或者文件是否已删除以及是否生成了不相关的文件。此外,无法处理计算(初始)值的情况。

因此,这种方法只适用于退化的边缘情况,因此即使在中等规模的项目上也不会长期工作,抱歉。