У меня есть таблица в sql -сервер с XML типом данных. Я хочу изменить значение одного из атрибутов. Таблица выглядит следующим образом:
id--------version-------XMLdata
1---------2--------------<Package version="1"> .... </Package>
2---------2--------------<Package version="1"> .... </Package>
3---------2--------------<Package version="1"> .... </Package>
and so on
Я пытаюсь обновить версию внутри XML-данных до 2, например:
id--------version-------XMLdata
1---------2--------------<Package version="2"> .... </Package>
2---------2--------------<Package version="2"> .... </Package>
3---------2--------------<Package version="2"> .... </Package>
and so on
Я выполняю запрос вроде:
UPDATE Tbl
SET XMLDATA.modify('replace value of (/Package[1]/@version)[1] with "2"')
WHERE version=2
Но в выводе я вижу, что только последняя версия получения записи была изменена на 2. Индивидуальную запись я также могу обновить с помощью:
UPDATE Tbl
SET XMLDATA.modify('replace value of (/Package[1]/@version)[1] with "2"')
WHERE id=1
Но не все записи вместе. Я не понимаю, в чем причина этого. Я попытался создать копию таблицы с именем Tbl2, и там запрос обновляет все версии записи в данных XML. Какая может быть возможная зависимость, которая останавливает запрос на изменение значения атрибута версии?