Zapoznaj się z trzyczęściową serią dotyczącą SQL XML w 15sekund:http://www.15seconds. pl/Wydanie/050803.htm .
Osobiście użyłbym funkcji SQL XQuery do rozdrabniania Twojego XML-a na kawałki i przechowywania ich w SQL Server.
Jeśli masz coś takiego:
<data>
<person>
<name>Jones</name>
<firstname>Peter</firstname>
</person>
<person>
<name>Smith</name>
<firstname>Frank</firstname>
</person>
<data>
możesz napisać coś takiego:
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)
Więc w zasadzie, .nodes
funkcja rozdrabnia Twój kod XML do "pseudo-tabeli" Data.Person
- każdy
Z .value()
funkcji, możesz wyodrębnić pojedyncze wartości z tych rozdrobnionych węzłów XML. Masz teraz kilka pól varchar(20), które mogą być np. wstawiony do tabeli.
Ta metoda działa dobrze, jeśli Twój kod XML jest dość mały (kilkaset wpisów). Jeśli masz duże pliki XML, możesz zbadać inne metody, takie jak Plik zbiorczy XML .