Comment faire pour supprimer un attribut à partir d'une variable XML dans sql server 2008?
J'ai un tableau appelé XML (SQL Server 2008) et il a un champ appelé XmlDocument
de type XML
. Je suis en train de supprimer un attribut à partir d'une variable XML.
Ici est de savoir comment mon xml ressemble à
<clue_personal_auto xmlns="http://cp.com/rules/client">
<admin>
<receipt_date>03/16/2011</receipt_date>
<date_request_ordered>03/16/2011</date_request_ordered>
<report_usage>Personal</report_usage>
</admin>
</clue_personal_auto>
Ma requête
UPDATE XML
SET XmlDocument.modify('delete (/clue_personal_auto/@xmlns)[1]')
WHERE xmlid = 357
Lorsque j'exécute cette requête dans l'analyseur de requêtes, je vois le message "1 ligne(s) affectée", mais en réalité l'attribut xmlns de clue_personal_auto élément n'est pas supprimé. Toute idée de ce que je fais mal.
Merci
BB
- (1 ligne concernée) signifie simplement que vous avez effectué une mise à jour. Si il y avait une colonne de type timestamp, il aurait changé. Tout comme
update tbl set id=id
réussit aussi, mais ne fait rien - Note de tha SQL-Server fonction
.modify()
utilisation d'un fournisseur XML de Données Modification de la Langue
Vous devez vous connecter pour publier un commentaire.
Je n'arrive pas à trouver un moyen facile de le faire - mais la vraie question reste: pourquoi voulez-vous supprimer l'espace de noms?? À l'aide de la
WITH XMLNAMESPACES ...
construire, vous pouvez facilement utiliser les espaces de noms.Au lieu de mettre beaucoup d'efforts à se débarrasser de l'il - en savoir plus sur les espaces de noms XML et de commencer à les utiliser!
Vous pouvez très facilement utiliser l'espace de noms XML dans vos requêtes:
et être heureux avec elle, pas besoin de supprimer artificiellement
xmlns=
déclarations plus!Vous devez utiliser AVEC xmlnamespaces, sinon "/clue_personal_auto" ne correspond pas à l'espace de noms
clue_personal_auto xmlns="..."
nœud.Non seulement cela, vous ne pouvez supprimer un espace de noms, car il n'est pas normal attribut.
Exemple de la suppression d'un attribut régulier