使用存储过程在mssql中添加XML属性

使用存储过程在mssql中添加XML属性,sql,sql-server,xml,Sql,Sql Server,Xml,我想要输出 <CustomerName> <Customer id='1'> <Name>xyz</Name> </Customer> <Customer id='2'> <Name>Abc</Name> </Customer> </CustomerName> 无法添加Id属性,请帮助我尝试以下操作: DECLARE @tblCust TABLE(id INT, Custom

我想要输出

<CustomerName>
<Customer id='1'>
<Name>xyz</Name>
</Customer>
<Customer id='2'>
<Name>Abc</Name>
</Customer>
</CustomerName>
无法添加Id属性,请帮助我尝试以下操作:

DECLARE @tblCust TABLE(id INT, CustomerName VARCHAR(100));
INSERT INTO @tblCust VALUES
 (1,'xyz')
,(2,'Abc');

SELECT id AS [@id]
      ,CustomerName AS [Name]
FROM @tblCust  
FOR XML PATH('Customer'),ROOT('CustomerName')
这就是结果

<CustomerName>
  <Customer id="1">
    <Name>xyz</Name>
  </Customer>
  <Customer id="2">
    <Name>Abc</Name>
  </Customer>
</CustomerName>

看起来您的SP的一部分丢失了-您可以显示整个内容吗?另外,您的数据是什么样子的?@bukko SP已完成..我的数据看起来像xyz Abc SP的begin with CREATE过程。另外,我指的是您的输入数据,即表格,而不是输出XML。@bukko创建过程GetXML ID BIGINT AS BEGIN SELECT AS[CustomerName],从Customer中选择Name[Customer/Name],其中CusId=ID表示XML路径,键入AS[CustomerName/Customer]表示XML路径结束这是完整的SPHa,明白了!下次你会再次获胜:-
<CustomerName>
  <Customer id="1">
    <Name>xyz</Name>
  </Customer>
  <Customer id="2">
    <Name>Abc</Name>
  </Customer>
</CustomerName>
SELECT [@id] = t.id, [Name] = t.name
FROM (
    VALUES (1, 'name'), (2, 'name2')
) t (id, name)
FOR XML PATH('Customer'), ROOT('CustomerName')