我想更新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'標記 - 與任何這些技術無關,真的.. –