2016-02-27 4 views
-2

У меня есть простой XML какЗамена XML-атрибута с другим значением атрибута XML SQL

<x y=1>

то, что я хочу сделать, это добавить еще один атрибут Z и присвоить значение у

ожидаемого результата является <x y="1" z="1">

я хочу сделать это в SQL

Спасибо заранее

+1

Что SQL вы используете? MS SQL, MySQL, Oracle и т. Д.? Пожалуйста уточни. – gofr1

+1

У вас в заголовке есть «Замена», но ваш вопрос сам хочет «добавить» другой атрибут. Или измените заголовок на «Добавить ...» или измените свой вопрос. –

ответ

1

я нашел ansewr

это походит

UPDATE dbo.tbl 
     set DataXml.modify('insert (attribute Z{/x/@Y}) into (/x)[1] ') 
     where not cast(DataXml as nvarchar(max)) like 'z=%' 

это добавить атрибут г, если нет атрибута г и присвоить значение у

+0

Вы нашли '.modify()' - отлично! -, но вы также должны были найти '.exist()' ... Потому что ваш подход с литой и поиском 'LIKE' медленный и прочный ... – Shnugo

Смежные вопросы