0

SQL Server 列に要素として挿入する値を含む一時テーブルがあります。変更ステートメントと挿入ステートメントを使用して、1 つのエントリに対してこれを行うことができます。しかし、テーブル内の複数の行に対してこれを行うにはどうすればよいでしょうか?

一部のサンプル データは次のようになります。

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>

要素の名前は、新しく挿入されたすべてのフィールドで同じになります。

4

1 に答える 1

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フィドル

于 2015-12-11T02:38:33.483 に答える