0
我有以下XML: -从子节点OPENXML SQL返回相同节点值
<XML>
<ProductDetail>
<ProductId>1</ProductId>
<PropertyDetail>
<PropertyKey>Size</PropertyKey>
<PropertyValue>XXL</PropertyValue>
<PropertyKey>ProdTaxType</PropertyKey>
<PropertyValue>5%</PropertyValue>
<PropertyKey>Incl/Excl</PropertyKey>
<PropertyValue>True</PropertyValue>
<PropertyKey>Fit</PropertyKey>
<PropertyValue>SLIM F/S</PropertyValue>
</PropertyDetail>
</ProductDetail>
</XML>
但是,我得到如下结果:
ProductId PropertyKey PropertyValue
1 Size XXL
我需要使用获得的所有PropertyDetail OPENXML。我的存储过程小的查询中,如下所示MS SQL 2012:
SELECT XML.ProductId, XML.PropertyKey, XML.PropertyValue FROM
OPENXML (@hDoc, '/XML/*', 2) WITH (
ProductId INT 'ProductId',
PropertyKey VARCHAR(200) 'PropertyDetail/PropertyKey',
PropertyValue VARCHAR(200) 'PropertyDetail/PropertyValue'
) XML
的finall结果会看起来像如下:
ProductId PropertyKey PropertyValue
1 Size XXL
1 ProdTaxType 5%
1 Incl/Excl True
1 Fit SLIM F/S
注意:请不要使用OPENXML。在某些情况下,它会导致内存泄漏。相反,我使用的是节点()方法。 –