我试图安排一个失败的SQL查询,而我得到的错误是,
Update failed because the following SET 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.[SQLSTATE 42000](Error 1934).
我有这个解决方案
Add SET QUOTED_IDENTIFIER ON
before your UPDATE statements in SQL Job step.
但是,SET QUOTED_IDENTIFIER ON
做了什么?
有人可以向我解释一下吗?
由于
编辑1; 我尝试了上面的,执行了预定的查询,但是没有更改任何字段吗?
使用查询;
SET QUOTED_IDENTIFIER ON
update dbo.myTable
set name=[dbo].[functName](name);
如果我运行正常的UPDATE
查询,
update dbo.myTable
set name=[dbo].[functName](name);
它有效,字段也会改变。
为什么它在预定查询中不起作用?
由于
答案 0 :(得分:1)
它指定SQL Server如何处理您在单引号和双引号中定义的数据。 MSDN为您提供答案:
使SQL Server遵循关于引号的ISO规则 分隔标识符和文字字符串。由...分隔的标识符 双引号可以是Transact-SQL保留关键字或 可以包含Transact-SQL通常不允许的字符 标识符的语法规则。
另请查看备注部分,其中提供了有关ON和OFF的详细信息。
当SET QUOTED_IDENTIFIER为ON时,标识符可以由分隔符组成 双引号,文字必须用单个分隔 引号。当SET QUOTED_IDENTIFIER为OFF时,标识符不能 引用并且必须遵循标识符的所有Transact-SQL规则。对于 更多信息,请参阅数据库标识符。文字可以分隔 用单引号或双引号................