EXEC и Set Quoted_Identifier

У меня есть сохраненный процесс [A], который создает другой сохраненный процесс [B]

[A] никогда не будет запущен конечными пользователями и не имеет параметров или других ненадежных данных. Вместо этого он используется мной просто для автоматизации создания сложных SP [B]. [A] Всегда будет иметь один и тот же результат, если только его внутренности не будут изменены. Поэтому я считаю это безопасным.

[B] требует Quoted_Identifiers ON, поскольку он использует xml.

Если я скопирую и вставлю сгенерированный SP, он будет работать нормально, но если я позволю [A] создать его с помощью EXEC, то SP сработает при запуске.

Я пытался добавитьSET QUOTED_IDENTIFIERS ON внутри [B], но это не имеет заметного эффекта.

Та же проблема возникает и в том случае, если я использую sp_ExecuteSQL, я также пытался установить его перед вызовом [B], но это также, похоже, не дает никакого эффекта (но почему это происходит в контексте, где он всегда был включен)

Я предполагаю, что EXEC и sp_ExecuteSQL всегда используют параметр OFF, а команда SET обрабатывается синтаксическим анализатором, а не самим механизмом SQL. Итак, как я могу заставить EXEC правильно создавать процесс?

Ответы на вопрос(1)

Ваш ответ на вопрос