Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在XML值中插入_Sql Server_Xml_Tsql_Xml Parsing - Fatal编程技术网

Sql server 如何在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

我有一个XML类型字段,需要更新该XML字段中的一个值,当我更新完元素时,元素的其余部分应该在其中重新编号

样本结构

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
废话
...
有很多方法可以以你喜欢的方式解决你的问题,但是——老实说——写完这篇文章后,我不得不洗手了。所以,请先告诉我,如果您真的需要这个(可能是由于不可更改的/第三方环境),或者如果您愿意进行结构更改