Обновление XML с использованием атрибута для определения значения на сервере SQL - PullRequest
1 голос
/ 17 июня 2010

У меня есть XML-структура в столбце XML в таблице SQL Server следующим образом:

<Customizations>
 <Customization name="OtherValue">
  <value>Test</value>
 </Customization>
 . . . .
 <Customization name="Year">
  <value>2009</value>
 </Customization>
</Customizations>

, и я хочу обновить значение настройки с помощью элемента с атрибутом Year.Некоторое время я смотрел на это, и лучшая попытка:

UPDATE TestTable
SET XmlColumn.modify(
'
    replace value of (/Customizations/Customization/@name[.="Year"]/value)[1] 
    with ( "2010" )
')

Может ли кто-нибудь помочь указать, где я ошибаюсь?

1 Ответ

0 голосов
/ 17 июня 2010

Вам нужно использовать немного другое выражение XPath:

UPDATE TestTable
SET 
   XmlColumn.modify('replace value of (/Customizations/Customization[@name="Year"]/value/text())[1] with "2010"')
WHERE .......

В частности, вам нужно указать /value/text(), чтобы заменить внутренний текст узла <value>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...