Вижте поредицата от три части за SQL XML на 15seconds:http://www.15seconds. com/Issue/050803.htm .
Аз лично бих използвал функциите на SQL XQuery, за да раздробя вашия XML на части и да ги съхраня в SQL Server.
Ако имате нещо като:
<data>
<person>
<name>Jones</name>
<firstname>Peter</firstname>
</person>
<person>
<name>Smith</name>
<firstname>Frank</firstname>
</person>
<data>
можете да напишете нещо като:
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)
Така че основно .nodes
функция раздробява вашия XML в "псевдо-таблица" Data.Person
- всеки <лице>код> запис става един ред в таблицата.
С .value()
функция, можете да извлечете единични стойности от тези нарязани XML възли. Вече имате куп полета varchar(20), които могат да бъдат напр. вмъкнат в таблица.
Този метод работи добре, ако вашият XML е сравнително малък (няколко стотин записа). Ако имате огромни XML файлове, може да искате да проучите други методи, като например Групово зареждане на XML .