我在执行存储过程时遇到此错误:
INSERT 失败,因为以下 SET 选项的设置不正确:“QUOTED_IDENTIFIER”。验证 SET 选项对于索引视图和/或计算列上的索引和/或过滤索引和/或查询通知和/或 XML 数据类型方法和/或空间索引操作是否正确。
创建过程时将QUOTED_IDENTIFIER
标志设置为ON
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'sp_procedure') AND TYPE IN (N'P', N'PC'))
BEGIN
DROP PROCEDURE [dbo].[sp_procedure]
END
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_procedure]
(
@param_1 XML
,@param_2 INT
)
AS
BEGIN
-- CODE
END
SELECT
来自的声明sys.sql_modules
显示以uses_quoted_identifiers
某种方式设置为0
.
我已经尝试执行以下代码。它运行在one batch
.
SET QUOTED_IDENTIFIER ON;
EXEC sp_procedure @param_1 = N'<?xml version="1.0" encoding="utf-16"?>
xmlns:xsd="http://www.w3.org/2001/XMLSchema" />', @param_2= 51326
但这无济于事。
每个会话都是使用QUOTED_IDENTIFIER
设置为 1 创建的:
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
有什么想法吗?
UPD 原来在运行这个特定的脚本之后,还有很多其他的文件。其中一个刚刚重新创建了将 QUOTED_IDENTIFIER 设置为 OFF 的存储过程。
谢谢您的帮助