Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

kirim xml ke sql

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang dilakukan SQL Server dengan permintaan waktu habis?

  2. Cara Memperbaiki "Konversi gagal saat mengonversi nilai ke tipe data" di SQL Server

  3. Bagaimana Mengembalikan Database di Database server sql Server?

  4. Permintaan untuk Memilih Antara Dua Waktu Sehari

  5. Bagaimana cara memperbaiki kesalahan Visual Studio Versi server ini tidak didukung... untuk SQL Server 2012