存储过程中如何把查询的结果转化为XML,然后它赋值给一个XML类型的参数

存储过程中怎么把查询的结果转化为XML,然后它赋值给一个XML类型的参数
存储过程中怎么把查询的结果转化为XML,然后它赋值给一个XML类型的参数?
最好是在内存中完成,不要把XML写成一个文件再读取。

------解决方案--------------------
SQL code
CREATE PROCEDURE P
(
@xml XML OUTPUT
)
AS
SET @xml=(SELECT TOP 5 ID,Name FROM sysobjects FOR XML PATH('Root') )

GO

DECLARE @xml XML
EXEC p @xml OUTPUT
select MyTable.c.value('./ID[1]','int') AS ID,
MyTable.c.value('./Name[1]','nvarchar(50)') AS NAME 
FROM @XML.nodes('Root') MyTable(c)

/*
ID    NAME
4    sysrowsetcolumns
5    sysrowsets
7    sysallocunits
8    sysfiles1
13    syshobtcolumns
*/