SQL-如何在变量中分配记录

SQL-如何在变量中分配记录,sql,sql-server,xml,tsql,Sql,Sql Server,Xml,Tsql,目标:将结果集转换为XML并将结果分配给变量 结果集: M000017690 324067342 324067349 324067355 324154449 已转换的XML: <Products> <Product ProductId="324067342" /> <Product ProductId="324067349" /> <Product ProductId="324067355" /> <Product Prod

目标:将结果集转换为XML并将结果分配给变量

结果集:

M000017690
324067342
324067349
324067355
324154449
已转换的XML:

<Products>
  <Product ProductId="324067342" />
  <Product ProductId="324067349" />
  <Product ProductId="324067355" />
  <Product ProductId="324154449" />
  <Product ProductId="M000017690" />
</Products>
现在我需要将这个XML传递给另一个存储过程,它需要一个参数类型:XML 因此,基本思想是创建一个XML类型的对象:

DECLARE @xml_data as XML
并将查询结果分配给此变量,如何将查询结果分配给@xml_数据?

如何(适用于SQL Server 2005及更高版本):

马克

DECLARE @xml_data as XML
DECLARE @xmldata XML

SELECT @xmlData = 
        (SELECT ProductId as '@ProductId'
         FROM @Temp 
         FOR XML PATH('Product'), ROOT('Products')
        )

SELECT @xmldata