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。在某些情況下,它會導致內存泄漏。相反,我使用的是節點()方法。 –