Изменить несколько строк данных 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

SQL скрипка

Другие вопросы по тегам