sql xquery 将 xml 块添加到特定位置
sql xquery to add xml block into specific position
使用 sql 服务器 2012 sp1 我还没有找到解决方案,但我相信不可能将 xml 块添加到现有 [=28] 的特定位置=]列在table中。例如假设我们有 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>
如何插入:
<Animal name="Goat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
在猫和鸟块之间?
尝试过 position() and found this problem,我们如何在 sql 中使用:
完成它
update tbTable set AnimalsXML.modify('
insert
sql:variable("@var")
as "specific position"
into (/Animals)[1]')
您可以使用insert ... after ...
构造在某个现有元素之后插入新元素。下面的示例在现有 <Animal name="Cat">
元素之后插入新元素:
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]
')
使用 sql 服务器 2012 sp1 我还没有找到解决方案,但我相信不可能将 xml 块添加到现有 [=28] 的特定位置=]列在table中。例如假设我们有 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>
如何插入:
<Animal name="Goat">
<Enclosure id="Default">
<Value>xyz</Value>
</Enclosure>
</Animal>
在猫和鸟块之间?
尝试过 position() and found this problem,我们如何在 sql 中使用:
完成它update tbTable set AnimalsXML.modify('
insert
sql:variable("@var")
as "specific position"
into (/Animals)[1]')
您可以使用insert ... after ...
构造在某个现有元素之后插入新元素。下面的示例在现有 <Animal name="Cat">
元素之后插入新元素:
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]
')