我想编写一个接受XML参数的存储过程,解析它的元素并将它们插入到表中。这是我的XML:

我想循环该参数(比如C#中的foreach ),检索每个person,然后解析它的数据(ID、姓名、姓氏),将它们插入到一个包含3个字段的表中。
如何做到这一点?
发布于 2011-04-23 01:27:16
尝试以下语句:
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)这为您提供了该数据的行/列表示。
当然,您可以将其扩展为INSERT语句的第二部分:
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)完成-不需要循环或游标或任何可怕的东西!:-)
https://stackoverflow.com/questions/5758091
复制相似问题