Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So schleifen und analysieren Sie XML-Parameter in einer gespeicherten SQL Server-Prozedur

Probieren Sie diese Anweisung aus:

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)

Dadurch erhalten Sie eine schöne Zeilen-/Spaltendarstellung dieser Daten.

Und natürlich können Sie das zum zweiten Teil einer INSERT-Anweisung erweitern:

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)

Fertig - keine Schleifen oder Cursor oder irgendwelche schrecklichen Dinge wie das nötig! :-)