Lihat seri tiga bagian pada SQL XML pada 15 detik:http://www.15seconds. com/Issue/050803.htm .
Saya pribadi akan menggunakan fungsi SQL XQuery untuk memisahkan XML Anda menjadi potongan-potongan dan menyimpannya di SQL Server.
Jika Anda memiliki sesuatu seperti:
<data>
<person>
<name>Jones</name>
<firstname>Peter</firstname>
</person>
<person>
<name>Smith</name>
<firstname>Frank</firstname>
</person>
<data>
Anda dapat menulis sesuatu seperti:
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)
Jadi pada dasarnya, .nodes
function merobek XML Anda menjadi "pseudo-table" Data.Person
- setiap <person>
entri menjadi satu baris dalam tabel.
Dengan .value()
fungsi, Anda dapat mengekstrak nilai tunggal dari simpul XML yang diparut itu. Anda sekarang memiliki banyak bidang varchar (20), yang dapat berupa mis. dimasukkan ke dalam tabel.
Metode ini bekerja dengan baik jika XML Anda cukup kecil (beberapa ratus entri). Jika Anda memiliki file XML yang besar, Anda mungkin ingin menyelidiki metode lain, seperti XML Bulkload .