tsql创建具有多个记录和1个表节点的XML

时间:2016-05-04 12:20:53

标签: sql-server xml tsql

我有以下代码:

    declare @Temp Table(FirstName varchar(50)
            ,LastName varchar(50))
    insert into @Temp values
    ('John','Smith'),
    ('William','Robert'),
    ('Richard','Rich'),
    ('Seymour','Code'),
    ('Hans','Hustler');

    Select
        (Select LastName + ',' + FirstName as [Name] from @Temp for XML                 PATH('names'), TYPE)

并生成以下XML:

    <names>
      <Name>Smith,John</Name>
    </names>
    <names>
      <Name>Robert,William</Name>
    </names>
    <names>
      <Name>Rich,Richard</Name>
    </names>
    <names>
      <Name>Code,Seymour</Name>
    </names>
    <names>
      <Name>Hustler,Hans</Name>
    </names>

我需要它来生成如下的XML:

    <names>
      <Name>Smith,John</Name>
      <Name>Robert,William</Name>
      <Name>Rich,Richard</Name>
      <Name>Code,Seymour</Name>
      <Name>Hustler,Hans</Name>
    </names>

每个名字后面都没有名字?

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT
    Name = LastName + ', ' + FirstName
FROM @Temp 
    FOR XML PATH(''), ROOT('names')

这应该返回您正在寻找的内容