从SQL Server多表查询创建单个XML

Ber*_*amb 4 xml sql-server

我想从SQL Server 2005查询多个表并创建一个XML文档,并在存储过程中执行此操作.

我知道我可以在存储过程中查询多个表,并获得DataSet可以轻松保存为XML的.NET应用程序.但是,我正在尝试在存储过程的上下文中执行类似的操作.

基本上我想做这样的事情:

declare @x xml
select @x = x.result
from (select y.* from tabley y for xml path('y')
      union
      select a.* from tablea a for xml path('aa')
     ) as x
select @x
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 13

如果你想要一个接一个,你可以尝试这样的事情:

SELECT
    (SELECT y.* FROM dbo.TableY FOR XML PATH('y'), TYPE) AS 'YElements',
    (SELECT a.* FROM dbo.TableA FOR XML PATH('aa'), TYPE) AS 'AElements'
FOR XML PATH(''), ROOT('root')
Run Code Online (Sandbox Code Playgroud)

返回一个类似于的XML:

<root>
   <YElements>
     <Y>
       ....
     </Y>
     <Y>
       ....
     </Y>
      ......
   </YElements>
   <AElements>
     <A>
       ....
     </A>
     <A>
       ....
     </A>
      ......
   </AElements>
</root>
Run Code Online (Sandbox Code Playgroud)