【问题标题】:Visual Studio 2008 Database Project generating ALTER DATABASE during schema compareVisual Studio 2008 数据库项目在架构比较期间生成 ALTER DATABASE
【发布时间】:2016-04-20 19:03:49
【问题描述】:

我有一个新的 Visual Studio 2008 数据库项目(Data Dude)。它是通过指向我们现有的数据库生成的。我现在进行了一些更改(新列、表、索引等),并且我正在尝试生成部署 (diff) 脚本以进行部署。我有一个模式比较设置来进行比较并生成差异脚本文件。我想我已经将大多数比较设置和对象忽略调整为我需要的,但是,在顶部我得到了一些我不想生成的 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 名以上成员团队沟通,他们每次想要下拉并将最新版本部署到他们的差异文件时都需要从差异文件中删除这些行环境。

什么设置在控制这个?

【问题讨论】:

    标签: sql-server visual-studio-2008 visual-studio-2008-db


    【解决方案1】:

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

    Click here to view screenshot

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

    Click here to view screenshot

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

    截至 2016 年 4 月 20 日,我正在使用带有最新 SSDT 的 VS 2013。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 只是在答案中添加更多细节。当我们从现有的 db 生成 SQL 项目时,我们一定错过了从数据库生成 SQLSettings 的选项,而是选择使用 db(data dude)项目的“默认”设置。所以,我当前的数据库没有设置这些选项,所以它想在我的“差异脚本”生成中设置它们,因为它们是在“默认”sqlsettings 文件中指定的,但实际上不是在我的数据库中。我仍然想从生成中禁用它们,但更重要的是确保您第一次干净地生成您的数据库项目
      猜你喜欢
      • 1970-01-01
      • 2023-02-14
      • 2011-03-19
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多