修改多行SQL Server XML数据

时间:2015-12-11 01:13:24

标签: sql-server xml xml.modify

我有一个临时表,其中包含我想要作为元素注入SQL Server列的值。我可以使用modify和insert语句为一个条目执行此操作。但是如何在表格中的多行中执行此操作?

一些示例数据如下所示:

SerializedTable

ID    SerializedXML
-----------------------------------------
7     <Form> <Field1>111</Field1> </Form>
8     <Form> <Field1>112</Field1> </Form>

#TempTable

ID    FK_ID    Value
--------------------
1     7        120
2     8        124

所以我需要使用值列中的值向SerializedXML添加一个新元素。

所以决赛桌看起来像是:

SerializedTable

ID    SerializedXML
---------------------------------------------------------------
7     <Form> <Field1>111</Field1> <Field2>120</Field2> </Form>
8     <Form> <Field1>112</Field1> <Field2>124</Field2> </Form>

对于所有新插入的字段,元素的名称都是相同的。

1 个答案:

答案 0 :(得分:1)

试试这个

update s
set SerializedXML.modify('
  insert <Field2>{ sql:column("t.Value") }</Field2>
  after (/Form/Field1)[1] 
')
from SerializedTable s
join TempTable t on s.ID = t.FK_ID

SQL fiddle