SQL XML Legen Sie mehrere Elemente ein

Bitte helfen! Ich habe ein Feld von XML in einer database. Ich versuche, ein neues Element für jedes Element in das Feld einzufügen. Z.B:

<some-element> <a> </a> <b> </b> </some-element> <some-element> <a> </a> <b> </b> </some-element> 

würde das Element c insert und gehen zu:

 <some-element> <a> </a> <b> </b> <c> </c> </some-element> <some-element> <a> </a> <b> </b> <c> </c> </some-element> 

Ich weiß, ich kann @ fieldname.modify verwenden ('insert @CElement in (/ some-element) [1]'), aber das ändert nur das erste Element! Ich möchte das für alle Elemente wiederholen.

Jede Hilfe wäre sehr geschätzt! (Ich verwende SQL server 2008)

Von der Antwort verschoben:

Danke für Ihre Antwort! Vielleicht würde es helfen, wenn ich spezifischer wäre … Ich beschreibe eine einfache Tabelle von data innerhalb der xml. Ich versuche, eine neue Spalte hinzuzufügen. Ich kann die Spalte innerhalb der Spaltenbeschreibungen hinzufügen, aber ich muss das Spaltenelement zu allen Zeilen hinzufügen. (Es wäre keine einfache Aufgabe, die Struktur zu ändern und ich möchte das vermeiden!) ZB:

 <Table> <Columns> <Column ID="0"> <Column-Name>0NAME</Column-Name> </Column> <Column ID="1"> <Column-Name>1NAME</Column-Name> </Column> <Column ID="2"> <Column-Name>2NAME</Column-Name> </Column> <Column ID="3"> <Column-Name>!!!! THIS COLUMN IS BEING ADDED !!!!!</Column-Name> </Column> </Columns> <Rows> <Row ID="0"> <C ID="0">0 contents here</C> <C ID="1">0 contents here</C> <C ID="2">0 contents here</C> <!-- NEW COLUMN NEEDS TO BE CREATED HERE --> </Row> <Row ID="1"> <C ID="0">1 contents here</C> <C ID="1">1 contents here</C> <C ID="2">1 contents here</C> <!-- NEW COLUMN NEEDS TO BE CREATED HERE --> </Row> <Row ID="2"> <C ID="0">2 contents here</C> <C ID="1">2 contents here</C> <C ID="2">2 contents here</C> <!-- NEW COLUMN NEEDS TO BE CREATED HERE --> </Row> </Rows> </Table> 

Sie können Ihr XML neu erstellen, zB:

 declare @x xml = '<some-element> <a>1</a> <b>2</b> </some-element> <some-element> <a>3</a> <b>4</b> </some-element>' select @x.query (' for $e in some-element return <some-element> { $e/a } { $e/b } <c/> </some-element> ') 

Anpassung der Antwort von Kirill Polishchuk an die neue XML-Struktur:

 select @XML.query (' for $c in Table/Columns return <Table> <Columns> { $c/* } </Columns> <Rows> { for $r in Table/Rows/Row return <Row> { $r/* } <C ID="3"/> </Row> } </Rows> </Table> ')