sql >> Database >  >> RDS >> Sqlserver

Hoe de xml-parameter in de SQL-server opgeslagen procedure te herhalen en te parseren

Probeer deze verklaring:

SELECT
   Pers.value('(ID)[1]', 'int') as 'ID',
   Pers.value('(Name)[1]', 'Varchar(50)') as 'Name',
   Pers.value('(LastName)[1]', 'varchar(50)') as 'LastName'
FROM
   @YourXml.nodes('/Employees/Person') as EMP(Pers)

Dit geeft je een mooie rij-/kolomweergave van die gegevens.

En natuurlijk kun je dat uitbreiden tot het tweede deel in een INSERT-statement:

INSERT INTO dbo.YourTargetTable(ID, Name, LastName)
  SELECT
     Pers.value('(ID)[1]', 'int') as 'ID',
      Pers.value('(Name)[1]', 'Varchar(50)') as 'Name',
     Pers.value('(LastName)[1]', 'varchar(50)') as 'LastName'
  FROM
     @YourXml.nodes('/Employees/Person') as EMP(Pers)

Klaar - geen loops of cursors of iets dergelijks nodig! :-)




  1. mysql - retourneer de eerste kolom eenmaal en alle bijbehorende kolomgegevens

  2. Kan geen externe-sleutelbeperking toevoegen aan een datumveld

  3. Wat is de standaardnaam van de beperking in SQL Server?

  4. Hoe het middelpunt van 2 of 3 radiale locaties te krijgen (breedtegraad, lengtegraad)