IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Inserer des modifications dans un champs XML


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 20
    Points
    20
    Par défaut Inserer des modifications dans un champs XML
    Suite a la discussion sur l'acces aux donnees dans un champs XML :
    http://www.developpez.net/forums/d77...es-xml-champs/

    Je souhaite calculer une decrementation et la reinserer dans le champs XML, pour se faire j'ai trouve des elements de reponse du cote de XMLQuery et XQuery mais comme d'habitude SQL Server est pointilleux. Si quelqu'un peut m'aider une fois de plus...

    Voici la requete que j'ai cree :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE maTable
    SET monChampsXML = XMLQUERY('replace value of node monChampsXML//Caracteristiques[@name="NombreDeDoigts"]/@value with 9')
    WHERE identifiant='95';
    Identifiant etant un autre champs de ma table servant de cle primaire.

    Mais il me fait l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'XMLQUERY' is not a recognized built-in function name.
    #################################################
    EDIT

    Ok j'ai fais quelques modifications apres consultation d'un autre site :
    Requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE maTable
    SET monChampsXML = XMLQUERY('	
    transform
    copy $target := $i
    modify do replace value of node $target/Personne/Caracteristiques[@name="NombreDeDoigts"]/@value with 9
    return $target' PASSING (select monChampsXML from maTable where identifiant = '95') as "i")
    WHERE identifiant='95';
    Mais il produit une erreur du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Msg 102, Level 15, State 1, Line 5
    Incorrect syntax near 'PASSING'.
    Msg 156, Level 15, State 1, Line 5
    Incorrect syntax near the keyword 'as'.
    Need some help please !

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE maTable
    SET monChampsXML = monChampsXML.modify('replace value of (/Caracteristiques[@name="NombreDeDoigts"]/@value with 9) 
    WHERE identifiant='95'
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Desole mais apparemment ce n'est pas aussi simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "MODIFY" is not a valid function, property, or field.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    C'est pourtant une fonction implémentée dès SQL Server 2005.
    Si vous êtes sous SQL Server 2000, utilisez OPENXML().

    @++

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/09/2010, 12h50
  2. [phpMyAdmin] inserer des infos dans un champs en fonction d'un autre
    Par bernards111 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 13/04/2010, 14h27
  3. Inserer des données dans fichier Xml
    Par Logarythme dans le forum InfoPath
    Réponses: 3
    Dernier message: 28/02/2008, 08h35
  4. [DEBUTANT]Inserer des fichiers dans des champs blob
    Par tripper.dim dans le forum Débuter
    Réponses: 1
    Dernier message: 19/10/2006, 22h23
  5. Réponses: 4
    Dernier message: 06/10/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo