我想更新XML中存储在SQL Server XML列中的一个节点,如果我的XML位于XML元素中,但是现在我以某种方式需要将其更改为XML属性,显然该行在更改后变为无效。在SQL Server XML列中更新XML属性
作品为的XMLElement:
UPDATE [Customers]
SET voucherXML.modify('replace value of (/ArrayOfCampaignVoucher/CampaignVoucher/Qty/text())[1] with "50"')
WHERE voucherXML.value('(/ArrayOfCampaignVoucher/CampaignVoucher/VouCode)[1]', 'nvarchar(50)') = @VoucherCode
我试图改变这样的说法,但没有运气,没有错误,但QTY
值没有得到改变的@NewQuantity
值:
UPDATE [Customers]
SET voucherXML='<ArrayOfCampaignVoucher xmlns:xsd="http://www.w3.org/2001/XMLSchema" Qty="' + CAST(@NewQuantity AS NVARCHAR(16)) + '" />'
WHERE voucherXML.value('(/CampaignVoucher/VouCode)[1]', 'nvarchar(50)') = @VoucherCode
这是我的XML在SQL Server XML列中的外观:
<ArrayOfCampaignVoucher xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CampaignVoucher VouCode="Vouc001" Qty="16" />
<CampaignVoucher VouCode="Vouc002" Qty="18" />
<CampaignVoucher xsi:nil="true" />
</ArrayOfCampaignVoucher>
删除了'asp.net','c#'和'vb.net'标记 - 与任何这些技术无关,真的.. –