J'essaie d'utiliser XQuery dans SQL Server 2005 pour mettre à jour le xml enregistré dans une colonne. Voici un exemple des données que je dois mettre à jour. J'ai besoin de définir la zone et le volume à des valeurs d'une table différente. Je crée un CTE pour la mise à jour. Il y a une autre logique que j'ai omis, mais je l'ai vérifié que le CTE contient les données correctes pour la mise à jour:Utilisation de Xquery pour remplacer une valeur de noeud xsi: nil = "true"
;with Volume (DocumentID, Volume) As
(
Select DocumentID, Volume from tbl
)
et je l'utilise XQuery SQL suivante pour essayer de mettre à jour la table.
UPDATE tbl_Archive
SET XML.modify(' declare namespace x="http://www.redacted.com";
replace value of (/x:Document/x:Volume/text())[1]
with sql:column("Volume.Volume")')
From Volume where volume.documentID = tbl_Archive.DocumentID
je reçois 1 ligne affectée, mais quand je regarde le XML, il n'a pas changé, et je ne peux pas comprendre ce qui doit être fixé pour le faire fonctionner. Le noeud est non typé, si cela fait une différence.
Eh oui, cela ne il. Merci! –