2010-08-12 47 views
5

我有一个新的Visual Studio 2008数据库项目(数据伙计)。它是通过指向我们现有的数据库而生成的。我现在做了一些更改(新的列,表,索引等),我正在尝试生成用于部署的部署(diff)脚本。我有一个Schema Comparison设置来做比较并生成diff脚本文件。我想我已经调整了大部分比较设置和对象忽略,但是,在顶部,我得到了一些我不想生成的ALTER DATABASE命令。他们是这样的:Visual Studio 2008数据库项目在模式比较期间生成ALTER DATABASE

IF EXISTS (SELECT 1 
      FROM [master].[dbo].[sysdatabases] 
      WHERE [name] = N'$(DatabaseName)') 
    BEGIN 
     ALTER DATABASE [$(DatabaseName)] 
      SET ANSI_NULLS ON, 
       ANSI_PADDING ON, 
       ANSI_WARNINGS ON, 
       ARITHABORT ON, 
       CONCAT_NULL_YIELDS_NULL ON, 
       QUOTED_IDENTIFIER ON, 
       ANSI_NULL_DEFAULT ON, 
       CURSOR_DEFAULT LOCAL 
      WITH ROLLBACK IMMEDIATE; 
    END 


GO 
IF EXISTS (SELECT 1 
      FROM [master].[dbo].[sysdatabases] 
      WHERE [name] = N'$(DatabaseName)') 
    BEGIN 
     ALTER DATABASE [$(DatabaseName)] 
      SET PAGE_VERIFY NONE 
      WITH ROLLBACK IMMEDIATE; 
    END 


GO 

我宁愿调整设置,这样我就不必我15+成员组成的团队,他们需要从差异文件,他们希望每次删除这些行沟通将最新版本下载并部署到他们的环境中。

什么设置控制这个?

回答

1

有一些设置可以在项目的.sqldeployment和.sqlsettings文件中进行控制(可在解决方案资源管理器的项目属性文件夹中找到)。可以在.sqlsettings文件[DB Settings Screenshot]中调整设置本身,并且在查看.sqldeployment设置时,可以在第一个复选框中找到禁用整个数据库属性脚本生成的功能。 [SQL Deployment Settings Screenshot]

+1

只需在答案中增加一些细节即可。当我们从现有数据库生成SQL项目时,我们必须错过从数据库生成SQLSettings的选项,而是选择使用db(数据伙伴)项目的“默认”设置。所以,我的当前数据库没有设置这些选项,所以它希望将它们设置在我的“差异脚本”生成中,因为它们是在“默认”sqlsettings文件中指定的,但实际上并不在我的数据库中。我仍然希望禁止它们生成代码,但它更多的是要确保您首次生成干净的数据库项目 – Brian 2010-08-23 03:08:56

4

在保存发布配置文件之前,必须取消选中两个复选框。请确保你去项目属性 - >调试并取消选中“部署数据库属性”

Click here to view screenshot

然后右键单击数据库项目 - >发布,然后单击“高级”取消选中“部署数据库属性”

Click here to view screenshot

单击确定,单击配置文件另存为,并从现在开始,每次使用部署生成的脚本发布配置刚刚创建,将只包含您想要的修改。

我使用VS 2013和最新的SSDT截至2016年4月20日。

相关问题