Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как изменить значение в xml на другое по условию  [new]
Виктор_sql
Member

Откуда:
Сообщений: 98
Здравствуйте, подскажите, как можно решить вопрос.
Дано:
DECLARE @xData XML
SET @xData = N'<ServerInfo>
<RecCount>Десять</RecCount>
<RecCount>Пятнадцать<RecCount>
</ServerInfo>';
DECLARE @x INT
SET @x = 11;
SET @xData.modify('replace value of (/ServerInfo/RecCount/text())[1] with sql:variable("@x")');
SELECT @xData

RecCount может быть любое количество. Мне нужно узнать, что в одном из них появилось значение Пятнадцать и поменять только это значение на sql:variable("@x")
10 июл 15, 10:13    [17875452]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить значение в xml на другое по условию  [new]
invm
Member

Откуда: Москва
Сообщений: 9723
SET @xData.modify('replace value of (/ServerInfo/RecCount[text() = "Пятнадцать"]/text())[1] with sql:variable("@x")');
10 июл 15, 10:30    [17875512]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить значение в xml на другое по условию  [new]
Виктор_sql
Member

Откуда:
Сообщений: 98
invm,
спасибо.
Я правда сразу не оговорил сразу, что таких <RecCount>Пятнадцать<RecCount> может тоже быть несколько. Поэтому, в силу особенности modify нужно будет организовать некий цикл, правильно ?
А с одним замечательно работает
10 июл 15, 10:53    [17875648]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить значение в xml на другое по условию  [new]
invm
Member

Откуда: Москва
Сообщений: 9723
Виктор_sql
Поэтому, в силу особенности modify нужно будет организовать некий цикл, правильно ?
Да.
10 июл 15, 10:56    [17875670]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить