我有一个 SQL Server 2005 查询,它生成一个大结果集(最多几 GB):
SELECT * FROM Product FOR XML PATH('Product')
运行查询会生成一行,其中包含具有许多产品元素的文档:
Row 1:
<Product>
<Name>Product One</Name>
<Price>10.00</Price>
</Product>
<Product>
<Name>Product Two</Name>
<Price>20.00</Price>
</Product>
...
我想更改查询,以便它返回多行,每行包含一个由单个 Product 元素组成的文档,而不是包含一行包含具有多个 Product 元素的单个文档的结果集:
Row 1:
<Product>
<Name>Product One</Name>
<Price>10.00</Price>
</Product>
Row 2:
<Product>
<Name>Product Two</Name>
<Price>20.00</Price>
</Product>
最后,我想通过 IDataReader 使用 C# 中的此查询,而无需 SQL Server 或我的应用程序将整个结果集加载到内存中。我可以对 SQL 进行任何更改来实现此场景吗?
我想你想要这样的东西。(你可以在 AdventureWorks 上运行下面的查询)
SELECT ProductID
,( SELECT * FROM Production.Product AS b WHERE a.ProductID= b.ProductID FOR XML PATH('Name') ) AS RowXML
FROM Production.Product AS a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)