Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

изпрати xml към sql

Вижте поредицата от три части за SQL XML на 15seconds:http://www.15seconds. com/Issue/050803.htm .

Аз лично бих използвал функциите на SQL XQuery, за да раздробя вашия XML на части и да ги съхраня в SQL Server.

Ако имате нещо като:

<data>
  <person>
     <name>Jones</name>         
     <firstname>Peter</firstname>
  </person>
  <person>
     <name>Smith</name>         
     <firstname>Frank</firstname>
  </person>
<data>

можете да напишете нещо като:

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)

Така че основно .nodes функция раздробява вашия XML в "псевдо-таблица" Data.Person - всеки <лице> запис става един ред в таблицата.

С .value() функция, можете да извлечете единични стойности от тези нарязани XML възли. Вече имате куп полета varchar(20), които могат да бъдат напр. вмъкнат в таблица.

Този метод работи добре, ако вашият XML е сравнително малък (няколко стотин записа). Ако имате огромни XML файлове, може да искате да проучите други методи, като например Групово зареждане на 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. Как да пуснете колона с ограничение в SQL Server

  2. Единичен ред GO(Batch) израз дава грешка в SQL Server?

  3. Извличане и разделяне на колона от DB, за да се намери резултат от друга таблица

  4. Използваната версия на SQL Server не поддържа тип данни datetime2?

  5. Jquery AutoComplete с база данни