У меня есть хранимая процедура, которая принимает параметр XML и вставляет данные в несколько таблиц. Если я запускаю хранимую процедуру в базе данных, используя окно запросов SSMS, все работает нормально. Однако у нас есть специальная программа установки, которая используется для развертывания хранимых процедур в базах данных, и при ее использовании выполнение sp завершается с ошибкой:
INSERT failed because the following SET options have incorrect settings:
'ANSI_NULLS, QUOTED_IDENTIFIER'. Verify that SET options are correct for use with
indexed views and/or indexes on computed columns and/or query notifications
and/or xml data type methods.
Пользовательская программа установки не использует правильные настройки при написании сценариев в хранимых процедурах.
Установка этих параметров (SET ARITHABORT ON; SET QUOTED_IDENTIFIER ON; SET ANSI_NULLS ON;) в sp не имеет никакого эффекта:
Я также попытался установить эти параметры для открытого соединения непосредственно перед вызовом sp в коде. Это снова не дает желаемого эффекта.
Похоже, что настройки соединения с базой данных во время запуска sp в базу данных имеют значение, не настройки при использовании sp.
Я экспериментировал, играя с этими настройками в настройках SSMS, и это действительно так. Я просто хотел бы, чтобы кто-то подтвердил, что это определенно имеет место (если есть способ, я бы хотел это услышать, но я не надеюсь)
К сожалению, изменение программы установки в настоящее время для меня не вариант, поэтому я смотрю на необходимость откатить пару недель работы; поэтому, если мне нужно сделать это, я хочу быть действительно уверенным (и иметь некоторые доказательства, чтобы поддержать меня), что это единственный вариант