INSERT не удалось, поскольку следующие параметры SET имеют неправильные настройки: 'QUOTED_IDENTIFIER'
Мы иногда получаем сообщение ниже при выполнении хранимой процедуры, после чего без каких-либо изменений удаление и повторная выполнение хранимой процедуры работает нормально.
Ошибка DBCORE INSERT, потому что следующие параметры SET имеют неправильные настройки: "QUOTED_IDENTIFIER". Убедитесь, что параметры SET верны для использования с индексированными представлениями и/или индексами для вычисленных столбцов и/или отфильтрованных индексов и/или уведомлений запросов и/или методов типа данных XML и/или операций пространственного индекса.
Просьба помочь нам понять это.
Ответы
Ответ 1
QUOTED_IDENTIFIER
является "липкой" опцией, поэтому параметр, действующий при создании процедуры, используется во время выполнения. Поскольку никаких изменений процедуры не было сделано, ошибка предполагает, что хранимая процедура была создана с QUOTED_IDENTIFIER OFF
и был создан /QUOTED_IDENTIFIER OFF
индекс с одним из типов, упомянутых в сообщении об ошибке.
Воссоздайте или измените хранимую процедуру из сеанса с QUOTED_IDENTIFIER ON
и ANSI_NULLS ON
чтобы избежать дальнейшей проблемы.
Ответ 2
Я столкнулся с этой проблемой, поэтому я создал все свои рабочие шаги в хранимых процедурах в MS SQL. При использовании шаблона он автоматически имеет следующее
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
Ответ 3
В моем случае мне пришлось добавить параметр -I в командную строку sqlcmd.exe при загрузке хранимых процедур в массовом режиме.
Ответ 4
Если кто-то обнаружит эту ошибку после развертывания через проект базы данных Visual Studio, тогда стоит проверить свойства файла хранимой процедуры. Если для этого параметра установлено " Проект по умолчанию", перейдите в свойства вашего проекта базы данных> "Настройки проекта" и нажмите кнопку "Настройка базы данных".
Вы можете включить эти два значения (и другие) по умолчанию, как показано на скриншоте ниже.
![enter image description here]()
Это только исправит проблему, если у вас есть изменения в процедуре, как когда-либо; сравнение схемы и последующее обновление не изменят QUOTED_IDENTIFIER
в хранимой процедуре, если только в теле процедуры не будут внесены изменения. Это предотвратит повторное возникновение проблемы при последующем обновлении схемы.