Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

wyślij xml do sql

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 wpis staje się jednym wierszem w tabeli.

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WYBIERZ CASE CASE Błąd konwersji CAST

  2. Co to jest „rowversion” w SQL Server?

  3. zapisz dane w DB

  4. Jak wybrać maksymalny wiersz dla każdej grupy w SQL?

  5. Podczas wykonywania procedury składowanej, jaka jest korzyść z używania CommandType.StoredProcedure w porównaniu z używaniem CommandType.Text?