Bekijk de driedelige serie over SQL XML op 15seconds:http://www.15seconds. com/Issue/050803.htm .
Persoonlijk zou ik de SQL XQuery-functies gebruiken om je XML in stukjes en beetjes te versnipperen en op te slaan in SQL Server.
Als je iets hebt als:
<data>
<person>
<name>Jones</name>
<firstname>Peter</firstname>
</person>
<person>
<name>Smith</name>
<firstname>Frank</firstname>
</person>
<data>
je kunt iets schrijven als:
SELECT
Data.Person.value('(name)[1]', 'varchar(20)') as 'Name',
Data.Person.value('(firstname)[1]', 'varchar(20)') as 'First Name'
FROM
@XmlVar.nodes('/data/person') As Data(Person)
Dus eigenlijk zijn de .nodes
functie versnippert uw XML in een "pseudo-tabel" Data.Person
- elke <person>
invoer wordt één rij in de tabel.
Met de .value()
functie, kunt u enkele waarden extraheren uit die versnipperde XML-knooppunten. Je hebt nu een aantal varchar(20)-velden, die b.v. ingevoegd in een tabel.
Deze methode werkt goed als uw XML vrij klein is (een paar honderd ingangen). Als je enorme XML-bestanden hebt, wil je misschien andere methoden onderzoeken, zoals XML-bulklading .