Je tente de mettre à jour un noeud de mon XML qui est stocké dans une colonne SQL Server XML, la ligne ci-dessous fonctionne si mon XML est dans un élément XML mais maintenant je dois changer en attributs XML, apparemment la ligne devient invalide après le changement.Mise à jour de l'attribut XML dans la colonne SQL Server XML
Works pour 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
J'ai essayé de changer la déclaration comme ça, mais pas de chance, pas d'erreur, mais QTY
valeurs ne se change pas à la valeur de @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
Cette est l'aspect de mon XML dans la colonne 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>
enlevé les balises 'asp.net',' C# 'et' vb.net' - n'a rien à voir avec aucune de ces technologies, vraiment .. –