2015-11-12 2 views
0

Я попытался запланировать SQL запрос это не удалось, и ошибка, что я получил,Расписание ERROR SQL-запрос -SET QUOTED IDENTIFIER

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 do? Может ли кто-нибудь объяснить это мне?

EDIT 1; Я пробовал выше, запланированный запрос выполнен, но ничего не изменил ни одного поля?

Запрос используется;

SET QUOTED_IDENTIFIER ON 
update dbo.myTable 
set name=[dbo].[functName](name); 

Если я запускаю нормальный UPDATE запрос,

update dbo.myTable set name=[dbo].[functName](name);

Он работает, и поля изменяются.

Почему это не работает в запросе по расписанию?

Благодаря

+1

Возможный дубликат [UPDATE невозможен, поскольку следующие параметры SET имеют неправильные настройки: «QUOTED \ _IDENTIFIER '] (http://stackoverflow.com/questions/1243991/update-failed-because-the-following-set-options-have-incorrect-settings-quoted) – MusicLovingIndianGirl

ответ

1

Он определяет, как SQL Server будет обрабатывать ваши данные, которые вы определили в одинарных и двойных кавычках. MSDN дает ответ:

Вызывает SQL Server, чтобы следовать правилам ISO в отношении кавычки ограничителей идентификаторов и строковых литералов. Идентификаторы, ограниченные двойными кавычками, могут быть либо зарезервированными ключевыми словами Transact-SQL, либо могут содержать символы, которые обычно не разрешены правилами синтаксиса Transact-SQL для идентификаторов.

Также проверьте раздел Замечания который обеспечивает подробную информацию о ON и OFF.

Если SET QUOTED_IDENTIFIER включен, идентификаторы могут быть разделены двойные кавычки и литералы должны быть разделены одиночными кавычки. Когда SET QUOTED_IDENTIFIER выключен, идентификаторы не могут указывать и должны следовать всем правилам Transact-SQL для идентификаторов. Для дополнительную информацию см. В разделе Идентификаторы базы данных. Литералы могут быть разграничены либо одинарными, либо двойными кавычками ................

+0

Спасибо за объяснение. – AndroidAL

+0

@AndroidAL: - Добро пожаловать! –

Смежные вопросы