Hallo zusammen,
der neue SQL 2005 unterstützt XML als Datentyp. Mittels einer Stored Procedure möchte ich XML-Fragmente in einer Datenbank speichern.
Das XML sieht wie folgt aus:
<document docid="1">
<data>
<abc />
<cde />
<efg />
</data>
</document>
Das INPUT Statement (das obige XML-Dokument steht im XMLHandler zur Verfügung):
INSERT INTO docs (docid, docxml)
SELECT docid, cast(docxml as xml)
FROM OpenXML(@XMLHandler,'/document', 1)
WITH (docid int '@docid' ,
docxml xml 'data/child::*')
Das Problem ist, das nur das erste Fragment (erster Childnode: <abc />) in die Spalte gespeichert wird und nicht alle drei Fragmente.
Hat jemand dafür eine Lösung?
P.S.: Wenn ich den ganzen data-Knoten speichere mit der XPATH-Angabe 'data' geht es, aber ich möchte gerne nur die Childelemente von data in der Datenbankspalte ablegen...
Gruß
LeKuchen