AIM:将结果集转换为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的查询:
Select 1 AS Tag,NULL AS Parent, NULL as [Products!1!ProductId],NULL as [Product!2!ProductId]
From @Temp
UNION
SELECT 2 AS Tag, 1 AS Parent, ProductId, ProductId
FROM @Temp
FOR XML EXPLICIT
现在我需要将此XML传递给另一个需要参数类型的存储过程:XML 所以基本思想是创建一个XML类型对象:
DECLARE @xml_data as XML
并将查询结果分配给此变量,如何将查询结果分配给@xml_data?
答案 0 :(得分:1)
这个怎么样(适用于SQL Server 2005及以上版本):
DECLARE @xmldata XML
SELECT @xmlData =
(SELECT ProductId as '@ProductId'
FROM @Temp
FOR XML PATH('Product'), ROOT('Products')
)
SELECT @xmldata
马克