我们在执行存储过程时有时会收到以下消息,之后没有任何更改删除并重新执行存储过程它正常工作。
DBCORE INSERT失败,因为以下SET选项的设置不正确:'QUOTED_IDENTIFIER'。验证SET选项是否正确,以便与计算列和/或筛选索引和/或查询通知和/或XML数据类型方法和/或空间索引操作的索引视图和/或索引一起使用。
请帮助我们理解这一点。
答案 0 :(得分:22)
context:
application: rundeck
description: "normal users will only have read permissions"
for:
project:
- match:
name: '.*'
allow: [read]
system:
- match:
name: '.*'
allow: [read]
by:
group: user
---
context:
project: '.*'
description: "normal users will only have read permissions"
for:
resource:
- equals:
kind: 'node'
allow: [read,refresh]
- equals:
kind: 'job'
allow: [read]
- equals:
kind: 'event'
allow: [read]
job:
- match:
name: '.*'
allow: [read]
node:
- match:
nodename: '.*'
allow: [read,refresh]
by:
group: user
是一个"粘性"选项,以便在运行时使用创建过程时生效的设置。由于未进行任何过程更改,因此错误表明存储过程是使用QUOTED_IDENTIFIER
创建的,并且创建/删除了错误消息中提到的类型之一的索引。
使用QUOTED_IDENTIFIER OFF
和QUOTED_IDENTIFIER ON
的会话重新创建或更改存储过程,以避免问题继续发生。
答案 1 :(得分:3)
在我的情况下,以批量模式加载存储过程时,必须在sqlcmd.exe命令行中添加-I参数。
答案 2 :(得分:2)
我遇到了这个问题,所以我在MS SQL中将所有作业步骤都创建到了存储过程中。使用模板时,它会自动具有以下内容
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
答案 3 :(得分:2)