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

Откуда:
Сообщений: 103
Как можно изменить значение элемента, зная название атрибута?
Надо у атрибута ID3 изменить значение элемента Value

Пробовал так:
declare @value nvarchar(50) = N'100'

declare @xml xml = N'
<Parameters>
	<Parameter Name="ID">
		<Values>
			<Value>123</Value>
		</Values>
	</Parameter>
	<Parameter Name="ID2">
		<Values>
			<Value>1</Value>
			<Value>2</Value>
			<Value>3</Value>
		</Values>
	</Parameter>
	<Parameter Name="ID3">
		<Values>
			<Value>333</Value>
		</Values>
	</Parameter>
</Parameters>'

Select @xml

declare @sql nvarchar(1000)
Set @sql = N'Set @xml.modify(''replace value of (/Parameters/Parameter[@Name=ID3]/Values/Value/text())[1] with "'+ @value +'"'')'

EXEC sp_executesql @sql, N'@xml xml OUTPUT', 
				   @xml = @xml output
				   
Select @xml

Но увы, результаты нулевые, если убрать [@Name=ID3], то значение меняется у первого атрибута. Как изменить значение с привязкой к атрибуту? Есть идейки?

ЗЫ: С xml практически не работаю, так что если есть ошибки, то сильно не пинайте)
22 июл 13, 16:51    [14600149]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в xml  [new]
мимо
Guest
Max_Tpop,
[@Name="ID3"]/
22 июл 13, 16:59    [14600192]     Ответить | Цитировать Сообщить модератору
 Re: Изменение данных в xml  [new]
Max_Tpop
Member

Откуда:
Сообщений: 103
мимо,

Спасибо! То что надо
22 июл 13, 17:02    [14600212]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить