修改多行SQL服务器XML数据
Modify multiple rows of SQL Server XML data
我有一个临时文件 table,其中包含我希望作为元素注入到 SQL 服务器列中的值。我可以使用修改和插入语句为一个条目执行此操作。但是我怎样才能对 table 中的多行执行此操作?
一些示例数据如下所示:
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
添加一个新元素。
所以最后的 table 看起来像:
SerializedTable
:
ID SerializedXML
---------------------------------------------------------------
7 <Form> <Field1>111</Field1> <Field2>120</Field2> </Form>
8 <Form> <Field1>112</Field1> <Field2>124</Field2> </Form>
所有新插入的字段的元素名称都相同。
试试这个
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
我有一个临时文件 table,其中包含我希望作为元素注入到 SQL 服务器列中的值。我可以使用修改和插入语句为一个条目执行此操作。但是我怎样才能对 table 中的多行执行此操作?
一些示例数据如下所示:
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
添加一个新元素。
所以最后的 table 看起来像:
SerializedTable
:
ID SerializedXML
---------------------------------------------------------------
7 <Form> <Field1>111</Field1> <Field2>120</Field2> </Form>
8 <Form> <Field1>112</Field1> <Field2>124</Field2> </Form>
所有新插入的字段的元素名称都相同。
试试这个
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