Je travaille avec xQuery et j'essaie de replace la valeur de l'élément de test
si la balise Active
n'existe pas sous l'élément User
.
(J'ai ajouté des citations pour pouvoir l'afficher correctement ici …)
declare @testXML xml = ' <USER> <ID>10</ID> <TEST>1</TEST> </USER>' set @testXML.modify('if (exists(/USER/Active)=false) then replace value of /USER/TEST with "2" else ()') select @testXML
Pour cela, j'ai cette erreur:
XQuery [modify ()]: Erreur de syntaxe près de 'value', attendu 'else'.
Qu'est-ce que je me suis trompé?
Vous n'êtes pas autorisé à intégrer la replace value of ... with ..
dans une expression.
De replace la valeur de (XML DML)
replace value of Expression1 with Expression2
Vous pouvez utiliser quelque chose comme ça à la place:
set @testXML.modify('replace value of (/USER[not(Active)]/TEST/text())[1] with "2"')
SQL Fiddle