Как добавить / объединить дополнительный XML в существующее поле XML в SQL Server 2005 - PullRequest
5 голосов
/ 28 апреля 2009

У меня есть столбец в SQL Server 2005, в котором хранится простой фрагмент XML. Позже выполняется обработка, и мне нужно объединить некоторую информацию об обработке в XML.

Хотя я могу сделать это на промежуточном этапе, я бы предпочел сохранить этот метод централизованным в рамках хранимой процедуры, которая отвечает за обновление постобработки других полей.

Вот пример XML, с которого я начинаю, и тип результата, которого я хотел бы достичь. Кто-нибудь может дать мне грубый SQL для его достижения?

Обновление: Наконец-то получил! Я опубликую полное решение, когда у меня будет шанс, этого было достаточно, чтобы кто-то еще, надеюсь, нашел его полезным

Все закончено! В итоге у меня возникло несколько дополнительных требований, которые потребовали от меня переделки предложенного Марком решения и полного отказа от функции .modify (); однако его ответ позволил мне преодолеть мои первоначальные препятствия и дал мне возможность отступить назад и определить более легкий подход. Вот мое окончательное решение !

1 Ответ

5 голосов
/ 28 апреля 2009

Как насчет этого:

update yourTable
set (your XML column).modify('insert <processingData id="guid" someAttrib="x" /> as last into /someData[1]')
where .......

Это должно сделать это.

Для получения более подробной информации о том, как работать с XML в SQL Server 2005 и более поздних версиях, я продолжаю возвращаться к этой статье за ​​15 секунд , которая действительно показывает, как вставлять, изменять и удалять фрагменты XML внутри поля вашего сервера SQL, используя операторы XML DML.

Марк

...