我试图安排一个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);
它可以工作,字段也会改变。
为什么它不能在预定的查询中工作?
谢谢
发布于 2015-11-12 01:55:37
它指定Server将如何处理以单引号和双引号定义的数据。MSDN给出了答案:
导致Server遵循有关引号、分隔标识符和文字字符串的ISO规则。由双引号分隔的标识符可以是Transact-SQL保留关键字,也可以包含Transact-SQL语法规则通常不允许的字符。
还可以查看备注部分,该部分提供了有关ON和OFF的详细信息。
当SET QUOTED_IDENTIFIER打开时,标识符可以用双引号分隔,文字必须用单引号分隔。当SET QUOTED_IDENTIFIER为OFF时,标识符不能引用,必须遵循标识符的所有Transact-SQL规则。有关更多信息,请参见数据库标识符。文字可以用单引号或双引号分隔.
https://stackoverflow.com/questions/33668564
复制相似问题