安排SQL查询ERROR -Set QUOTED IDENTIFIER

时间:2015-11-12 09:51:25

标签: sql sql-server

我试图安排一个失败的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);

它有效,字段也会改变。

为什么它在预定查询中不起作用?

由于

1 个答案:

答案 0 :(得分:1)

它指定SQL Server如何处理您在单引号和双引号中定义的数据。 MSDN为您提供答案:

  

使SQL Server遵循关于引号的ISO规则   分隔标识符和文字字符串。由...分隔的标识符   双引号可以是Transact-SQL保留关键字或   可以包含Transact-SQL通常不允许的字符   标识符的语法规则。

另请查看备注部分,其中提供了有关ON和OFF的详细信息。

  

当SET QUOTED_IDENTIFIER为ON时,标识符可以由分隔符组成   双引号,文字必须用单个分隔   引号。当SET QUOTED_IDENTIFIER为OFF时,标识符不能   引用并且必须遵循标识符的所有Transact-SQL规则。对于   更多信息,请参阅数据库标识符。文字可以分隔   用单引号或双引号................