Изменить несколько строк данных SQL Server XML
У меня есть временная таблица, которая содержит значения, которые я хочу вставить как элементы в столбец 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 ответ
Решение
Попробуй это
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