Probleme: Mon probleme est que je ne parviens pas à passer des parametres à une variable xml avec xpath.
Situation: je veux executer une procedure stockee qui prend en entree 4 variables et qui me permettra de modifier la valeur de l'attribut @name de mon extrait xml @dt.
@AnVal represente l'ancienne valeur de l'attribut @name
et @NouvVal represente la nouvelle valeur.
Voici mon extrait xml @dt :Voici la requete xpath:<user name="uriel" type="root" folder-id="root">
<folder name="Mes" type="." folder-id="root\." />
<folder name="Nouveaux documents" type="recent" folder-id="root\recent" />
<folder name="Travail" type="user" folder-id="root\Travail" />
<folder name="Public" type="public" folder-id="root\Public" />
</user>
set @dt.modify('replace value of (/user/folder[@name =@AnVal ]/@name)[1] with @NouvVal ')
Voici la procedure stockee avec la requete xpath:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ALTER PROCEDURE [dbo].[modify_folders] ( @id_user int, @dt xml, @AnVal NVarChar(50), @NouvVal NVarChar(50) ) AS -- la fonction XQuery modify affecte une partie seulement de l'extrait XML set @dt.modify('replace value of (/user/folder[@name =@AnVal ]/@name)[1] with @NouvVal ') -- mettre a jour la table User update dbo.[user] set user_folders=@dt where id_user=@id_user RETURN
Probleme ciblé: Le passage de parametre @name =@AnVal ne marche pas, ainsi que l affectation de la nouvelle valeur @NouvVal .
J'espère m'etre fais comprendre...
Aidez-moi s'il vous plait.
Partager