Pour indiquer le singleton de votre chemin, utilisez cette syntaxe : (chemin)[n° de position] (ce qu'on appelle un prédicat de position). Exemple sur un attribut, avec recherche dans le chemin :
SELECT echiquier.value('(/echiquier/blancs/pieces/pion[@numero = "3"]/@position)[ 1]', 'char(2)')
FROM #partie
Pour
Passer des requêtes XQuery dans SQL Server (2)
un élément :
SELECT echiquier.value(‘(/echiquier/blancs/pieces/pion[@numero = "3"]/historique/ coup[@sequence = "1"]/source)[1]’, ‘char(2)’)
FROM #partie
Puisqu’il vous retourne une valeur, value() sera utile dans un SELECT. Pour un test dans une clause WHERE, préférez-lui exist(), les performances sont meilleures.
exist()
exist() vous permet, dans une clause WHERE, de tester une existence à l’aide d’une instruction XPath. Un bit vous est retourné. Test de valeur atomique :
SELECT echiquier.query(‘/echiquier/blancs/pieces/piece[@position = "B3"]’)
FROM #partie
WHERE echiquier.exist(‘/echiquier/blancs/pieces/piece[@position = "B3"]’) = 1
Exemple de recherche avec deux critères d’attribut :
SELECT echiquier.query(‘/echiquier/blancs/pieces/pion[@numero = "2"]’)
FROM #partie
WHERE echiquier.exist(‘/echiquier/blancs/pieces/pion[@numero = "2" and @position = "B3"]’) = 1
Autre syntaxe possible :
SELECT echiquier.query(‘/echiquier/blancs/pieces/pion[@numero = "2"]’)
FROM #partie WHERE echiquier.exist(‘/echiquier/blancs/pieces/pion[@numero = "2"][@position = "B3"]’) = 1
Présence d’un élément :
SELECT echiquier.query(‘/echiquier/blancs/pieces/roi’) FROM #partie WHERE echiquier.exist(‘/echiquier/blancs/pieces/roi’) = 1
nodes()
nodes() extrait des noeuds, créant pour chacun une ligne de résultat. À utiliser dans la clause FROM. Pour spécifier une colonne, vous devez utiliser l’opérateur CROSS APPLY avec cette syntaxe :
FROM table
CROSS APPLY colonnexml.nodes(‘XQuery’) as aliastable(aliascolonne)
Exemple avec une liste :
SELECT col.query(‘.’)
FROM #partie p
CROSS APPLY echiquier.nodes(‘(/echiquier/blancs/pieces/pion, /echiquier/blancs/ pieces/pion/historique/coup)’) tbl(col);
modify()
modify() vous permet d’appliquer une modification au contenu du document, en utilisant une extension créée par Microsoft au langage XQuery, nommée XML-DML.
Exemple :
UPDATE #partie
SET echiquier.modify(‘
replace value of (/echiquier/blancs/pieces/pion[@position = "C5"]/@position)[ 1]
with "pris!"’)
WHERE echiquier.exist(‘/echiquier/blancs/pieces/pion[@position = "C5"]’) = 1
SELECT echiquier.query(‘/echiquier/blancs/pieces/pion[@position = "pris!"]’)
FROM #partie
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Cloud souverain : répondre aux enjeux d’hybridation et de maîtrise des dépendances
- Cybermenaces 2026 : l’IA devient la nouvelle arme des attaquants
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
- Editeurs, crawlers et équipes sécurité, les alliances qui feront tenir le web
Articles les + lus
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
Adapter la sécurité OT aux réalités de l’industrie
Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
À la une de la chaîne Tech
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- DevX Summit EMEA : les développeurs au cœur de la révolution de l’IA
- Adapter la sécurité OT aux réalités de l’industrie
- Coder vite, mais coder juste : trouver l’équilibre à l’ère de l’IA
- Mixité dans la Tech : en 2026, un choix de souveraineté stratégique
