gpt4 book ai didi

sql-server-2008 - 在全局范围内实现 QUOTED_IDENTIFIER

转载 作者:行者123 更新时间:2023-12-02 05:02:48 26 4
gpt4 key购买 nike

我在 的帮助下实现了一个机制SqlDependency 这会提醒我特定数据库表中的任何更改。

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

我收到以下错误:

UPDATE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.



这类似于“ sqldependency-causes-error-in-other-application”。

我发现在表上执行更新的 proc 已经创建
QUOTED_IDENTIFIER 设置为 OFF,这就是问题的确切原因。

如果我使用“ SET QUOTED_IDENTIFIER ON ”更改程序,一切正常。但这不是一个可行的解决方案,因为我必须搜索所有 proc 并需要更改它们。

我想知道的是,每次从应用程序代码执行我的 proc 之前,有一种通用的方法可以调用“SET QUOTED_IDENTIFIER ON”。

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

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

[编辑]
在 SQL Server 2008 中还有什么直接的方法可以直接将 QUOTED_IDENTIFIER 设置为 true 而不改变 proc。我在想的是编写一个脚本,将 QUOTED_IDENTIFIER 设置为依赖于该表的所有对象(使用 sp_depends)。

最佳答案

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

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

如果您右键单击数据库,转到属性、连接,然后从列表中选择带引号的标识符,这就是 SSMS 所做的。它使 sql server 为所有传入连接设置带引号的标识符选项。

关于sql-server-2008 - 在全局范围内实现 QUOTED_IDENTIFIER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com