sql xquery将xml块添加到特定位置
使用SQLServer2012 sp1,我无法找到解决方案,但我认为不可能将xml块添加到表中现有xml列的特定位置。例如,假设我们有sql xquery将xml块添加到特定位置,sql,xml,sql-server-2012,xquery,sqlxml,Sql,Xml,Sql Server 2012,Xquery,Sqlxml,使用SQLServer2012 sp1,我无法找到解决方案,但我认为不可能将xml块添加到表中现有xml列的特定位置。例如,假设我们有tbTable.AnimalsXML,它是: <Animals> <Animal name="Dog"> <Enclosure id="Default"> <Value>xyz</Value> </Enclosure> </Animal> &
tbTable.AnimalsXML
,它是:
<Animals>
<Animal name="Dog">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Cat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Bird">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Sheep">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
</Animals>
可以使用construct在某些现有元素之后插入新元素。下面的示例在现有的
元素之后插入新元素:
declare @data XML = '<Animals>
<Animal name="Dog">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Cat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Bird">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Sheep">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
</Animals>'
set @data.modify('
insert
<Animal name="Goat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
after (/Animals/Animal[@name="Cat"])[1]
')
declare@data-XML=”
xyz
xyz
xyz
xyz
'
set@data.modify('
插入
xyz
在(/Animals/Animal[@name=“Cat”])[1]之后
')
awww谢谢,我使用了first&last和getting Nothing,但根据[链接]不知道之前和之后的情况
update tbTable set AnimalsXML.modify('
insert
sql:variable("@var")
as "specific position"
into (/Animals)[1]')
declare @data XML = '<Animals>
<Animal name="Dog">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Cat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Bird">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
<Animal name="Sheep">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
</Animals>'
set @data.modify('
insert
<Animal name="Goat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
after (/Animals/Animal[@name="Cat"])[1]
')