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 правильно создавать процесс?