SSDT 模式将锁 SET QUOTED_IDENTIFIER 与 OFF 进行比较
SSDT schema compare lock SET QUOTED_IDENTIFIER to OFF
我安装了 Visual studio 2012 和 SSDT 版本 11.1.20627.0。
一直困扰我的问题之一是我在 SSDT 项目中尝试使用模式比较将其推送到服务器时的所有存储过程。 SP 的 SET QUOTED_IDENTIFIER 总是切换到 OFF,我找不到改变这种行为的方法。
目标数据库是我的本地数据库,它的默认 QUOTED_IDENTIFIER 已更改为 ON(True);
在数据库项目 属性 页面中,"SET QUOTED_IDENTIFIER" 复选框被选中,但整个复选框被禁用。
我尝试更改一些架构比较选项,例如 "Ignore table options",结果是一样的:它总是给我一些更新脚本,如下所示:
GO
USE [$(DatabaseName)];
GO
PRINT N'Creating [dbo].[myspname]...';
GO
SET ANSI_NULLS ON;
SET QUOTED_IDENTIFIER OFF;
GO
任何提示都适用
QUOTED_IDENTIFIER 选项可以在项目级别和过程级别设置。单击存储过程文件 -> 属性并检查是否在那里启用了 QUOTED_IDENTIFIER。
此外,当使用模式比较时,验证选项 "Ignore quoted identifiers" 是启用还是禁用。
终于想通了。这是由旧版本的 SSDT 引起的。安装了标记为 SSDT_11.0.50730.0 的 SSDT 现在似乎可以正常工作了。
我不得不抱怨 SSDT 奇怪的版本控制规则:它看起来
11.xxxxx 适用于 Visual Studio 2012
12.xxxxx 适用于 Visual Studio 2013
14.xxxxx 适用于 Visual Studio 2015
并且第二个版本号在安装介质中始终为 0,但是如果您安装它并在 Visual studio 的关于 window 中查看它。它将变为 1。
这真的很令人困惑,因为它会让您相信版本 11.1.20627.0 比版本 11.0.50730.0 更新。这不是真的。
我安装了 Visual studio 2012 和 SSDT 版本 11.1.20627.0。
一直困扰我的问题之一是我在 SSDT 项目中尝试使用模式比较将其推送到服务器时的所有存储过程。 SP 的 SET QUOTED_IDENTIFIER 总是切换到 OFF,我找不到改变这种行为的方法。
目标数据库是我的本地数据库,它的默认 QUOTED_IDENTIFIER 已更改为 ON(True);
在数据库项目 属性 页面中,"SET QUOTED_IDENTIFIER" 复选框被选中,但整个复选框被禁用。
我尝试更改一些架构比较选项,例如 "Ignore table options",结果是一样的:它总是给我一些更新脚本,如下所示:
GO
USE [$(DatabaseName)];
GO
PRINT N'Creating [dbo].[myspname]...';
GO
SET ANSI_NULLS ON;
SET QUOTED_IDENTIFIER OFF;
GO
任何提示都适用
QUOTED_IDENTIFIER 选项可以在项目级别和过程级别设置。单击存储过程文件 -> 属性并检查是否在那里启用了 QUOTED_IDENTIFIER。
此外,当使用模式比较时,验证选项 "Ignore quoted identifiers" 是启用还是禁用。
终于想通了。这是由旧版本的 SSDT 引起的。安装了标记为 SSDT_11.0.50730.0 的 SSDT 现在似乎可以正常工作了。
我不得不抱怨 SSDT 奇怪的版本控制规则:它看起来
11.xxxxx 适用于 Visual Studio 2012
12.xxxxx 适用于 Visual Studio 2013
14.xxxxx 适用于 Visual Studio 2015
并且第二个版本号在安装介质中始终为 0,但是如果您安装它并在 Visual studio 的关于 window 中查看它。它将变为 1。
这真的很令人困惑,因为它会让您相信版本 11.1.20627.0 比版本 11.0.50730.0 更新。这不是真的。