Мой первый вопрос на переполнение стека :)SQL Server: как удалить XML-узел по переменной sql?
У меня есть XML:
DECLARE @xml XML = '<root><tag1 /><tag2 /></root>';
Мне нужно удалить узел, но путь к узлу является переменной "@path".
DECLARE @path XML = '/root/tag2';
Мой запрос:
SET @xml.[modify]('delete sql:variable("@path")');
Но, я получаю сообщение об ошибке: Msg 9342, уровень 16, состояние 1, строка 9 XQuery [изменить()]: экземпляр XML только поддерживается как прямой источник вставки с использованием переменной sql: column/sql:.
Так что мой вопрос: Как удалить узел xml по sql-параметру?
Вы не можете использовать переменную для XPath, но вы можете использовать различные предикаты. Пожалуйста, предоставьте более подробную информацию о ваших * реальных потребностях * ... Просто упомянем: есть способ через * динамически созданный SQL * и 'EXEC()' ... – Shnugo
Его комплекс для описания, только что созданного упрощенного примера. У меня есть больше требований здесь: один должен сохранить тот же сеанс. Таким образом, динамический sql - последний вариант использования. Спасибо за Ваш ответ. – Juozas