Podívejte se na třídílnou sérii o SQL XML za 15 sekund:http://www.15seconds. com/Issue/050803.htm .
Osobně bych použil funkce SQL XQuery k rozdělení vašeho XML na kousky a jejich uložení na SQL Server.
Pokud máte něco jako:
<data>
<person>
<name>Jones</name>
<firstname>Peter</firstname>
</person>
<person>
<name>Smith</name>
<firstname>Frank</firstname>
</person>
<data>
můžete napsat něco jako:
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)
V podstatě tedy .nodes
funkce skartuje váš XML do "pseudotabulky" Data.Person
- každý <person>
záznam se stane jedním řádkem v tabulce.
Pomocí .value()
můžete extrahovat jednotlivé hodnoty z těchto skartovaných uzlů XML. Nyní máte spoustu polí varchar(20), což může být např. vložen do tabulky.
Tato metoda funguje dobře, pokud je váš XML poměrně malý (několik stovek položek). Pokud máte velké soubory XML, možná budete chtít prozkoumat další metody, jako je Hromadné zatížení XML .