Sql server 2008 全局实现带引号的\u标识符

Sql server 2008 全局实现带引号的\u标识符,sql-server-2008,enterprise-library,sqldependency,quoted-identifier,Sql Server 2008,Enterprise Library,Sqldependency,Quoted Identifier,我在SqlDependency的帮助下实现了一种机制,它可以在特定数据库表中发生任何更改时向我发出警报 但这破坏了我现有的功能,我正在更新我已经实现了SqlDependency的数据库表 我得到以下错误: 更新失败,因为以下设置选项不正确 设置:'QUOTED_IDENTIFIER'。验证“设置选项”是否正确 用于索引视图和/或计算列上的索引和/或 筛选索引和/或查询通知和/或XML数据类型 方法和/或空间索引操作 这类似于“” 我发现在表上执行更新的proc是用 QUOTED_标识符设置为OF

我在SqlDependency的帮助下实现了一种机制,它可以在特定数据库表中发生任何更改时向我发出警报

但这破坏了我现有的功能,我正在更新我已经实现了SqlDependency的数据库表

我得到以下错误:

更新失败,因为以下设置选项不正确 设置:'QUOTED_IDENTIFIER'。验证“设置选项”是否正确 用于索引视图和/或计算列上的索引和/或 筛选索引和/或查询通知和/或XML数据类型 方法和/或空间索引操作

这类似于“”

我发现在表上执行更新的proc是用 QUOTED_标识符设置为OFF,这就是问题的确切原因

如果我用“将QUOTED\u标识符设置为ON”来更改程序,那么一切都会正常工作。但这不是一个可行的解决方案,因为我必须搜索所有的进程,并需要修改它们

我想知道的是,在每次从应用程序代码执行程序之前,是否有一种通用方法来调用“SET QUOTED\u IDENTIFIER ON”。

我的应用程序是一个ASP.Net 4 web应用程序,我正在使用Microsoft Enterprise Library 5.0执行数据库操作。 其中我使用了以下组件:Microsoft.Practices.EnterpriseLibrary.Data.Database

也欢迎任何SqlDependency的替代解决方案

[已编辑]
在SQLServer2008中,是否有任何直接方法可以直接将QUOTED_标识符设置为true,而无需更改过程。我的想法是编写一个脚本,将引用的标识符设置为依赖于该表的所有对象(使用sp_depends)。

如果您仍在寻找它,有另一种方法,无可否认,它不是最自我记录的方法

EXEC sys.sp_configure N'user options', N'256'
GO
RECONFIGURE WITH OVERRIDE
GO

如果右键单击数据库,转到properties,connections,然后从列表中选择quoted identifiers,SSMS就会这样做。它使sql server将所有传入连接的quoted identifier选项设置为on。

“每次从应用程序的代码执行我的程序之前,调用
设置quoted_identifier on
。-这不是您想要的。您已经正确地识别出需要更改存储过程:“创建存储过程时,将捕获和
设置ANSI_NULLS
设置,并用于该存储过程的后续调用。有人希望更改其所有过程的
ANSI_NULLS
(通过搜索找到)更改存储过程(“标识符设置”),谢谢Damien。我已经创建了一个SQL脚本,现在可以执行同样的操作。将您的上述评论作为答案发布,我将标记它并关闭此问题。