我经历了与该主题有关的所有各种问题,似乎无法从已经提供的内容中找到答案。
我想做的是在xml结构中插入一个新节点。当我运行下面的代码时,它不会引发错误,但是XML不包含新插入的“ material”子节。
你们中有人会指出我在这里的混乱吗?
DECLARE @t TABLE (rowID int IDENTITY PRIMARY KEY, XmlData XML)
INSERT INTO @t (XmlData)
VALUES ('
<Root>
<ProductDescription ProductID="01" ProductName="Widget">
<Features>
<Warranty>1 year</Warranty>
<Maintenance>Monthly</Maintenance>
</Features>
</ProductDescription>
</Root>
')
UPDATE @t
SET XmlData.modify('insert <Material /> as first into (/Features)[1]')
SELECT 'before' s, DATALENGTH(XmlData) dl, XmlData
FROM @t
WHERE rowId = 1
您需要在要插入新XML片段的位置指定完整的XPath:
UPDATE @t
SET XmlData.modify('insert <Material /> as first into (/Root/ProductDescription/Features)[1]')
您需要使用
/Root/ProductDescription/Features)[1]
不只是
/Features)[1]
这样就可以了
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句