Sql server 如何在XML值中插入
我有一个XML类型字段,需要更新该XML字段中的一个值,当我更新完元素时,元素的其余部分应该在其中重新编号 样本结构Sql server 如何在XML值中插入,sql-server,xml,tsql,xml-parsing,Sql Server,Xml,Tsql,Xml Parsing,我有一个XML类型字段,需要更新该XML字段中的一个值,当我更新完元素时,元素的其余部分应该在其中重新编号 样本结构 create table sampleTable (recID int, recValue xml) declare @xmlVal xml = ' <row> <c1>1234</c1> <c2>John</c2> <c3>Doe</c3> <c4>India
create table sampleTable (recID int, recValue xml)
declare @xmlVal xml = '
<row>
<c1>1234</c1>
<c2>John</c2>
<c3>Doe</c3>
<c4>India</c4>
</row>'
insert into sampleTable
values(1,@xmlVal)
create table sampleTable(recID int,recValue xml)
声明@xmlVal=“xml=”
1234
约翰
雌鹿
印度
'
插入样本表
值(1,@xmlVal)
这里我需要在XML中插入一个新元素,比如说,我需要另一个值为c2='brother'的'C'元素,随后的C应该重新编号为c3、c4和c5
关于如何在xml字段中插入新值的例外输出
<row>
<c1>1234</c1>
<c2>brother</c2>
<c3>John</c3>
<c4>Doe</c4>
<c5>India</c5>
</row>
1234
兄弟
约翰
雌鹿
印度
在这里,我如何编写一个查询来实现这一结果,请给出建议..提前感谢这是一个真正的、非常糟糕的方法 您应该永远不要为标签命名编号(例如
…
)
最糟糕的想法是在没有任何合理目标的情况下这样做。XML的使用者将不知道哪些信息是
。是姓还是名
此外,这绝对没有好处。XML根据定义具有给定的节点顺序。只对所有元素使用
是完全相同的
如果您确实希望在元素中包含位置信息,则应使用以下内容:
<c pos="1">blah1</c>
<c pos="2">blah2</c>
...
blah1
废话
...
有很多方法可以以你喜欢的方式解决你的问题,但是——老实说——写完这篇文章后,我不得不洗手了。所以,请先告诉我,如果您真的需要这个(可能是由于不可更改的/第三方环境),或者如果您愿意进行结构更改