Попытка следующего кода. Но получая 'Аргумент 1 из метода типа данных XML "изменяет", должен быть строковый литерал' ошибка. искавший много, но наклон находят любое решение для этой проблемы
SET @Path = '/@ParentNodeName/@NodeName/child::*'
SET @x.modify('insert attribute status {sql:variable("@status")}
as first into (' + @Path + ')[1]')
Проблема не в переменной sql: со значением, которое вы пытаетесь вставить, а в способе включения XPath в оператор изменения. Вы не можете связать эту команду вместе - вам нужно использовать литерал:
Итак, вам нужно использовать:
SET @x.modify('insert attribute status {sql:variable("@status")}
as first into (/Parent/Node/)[1]')
Тогда она работает нормально.