SQL Server XML Declare Namespace
-
05-07-2019 - |
Question
J'aimerais avoir quelques espaces de noms disponibles par défaut lors de l'exécution d'une requête XQuery dans SQL Server 2005, est-ce possible?
Par exemple, j'aimerais procéder comme suit:
select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1
Sans avoir à redéclarer l'espace de nom à chaque fois, afin que SQL reconnaisse nsp sans moi, y compris le prologue à chaque fois.
Pensées?
La solution
Les espaces de nom xml
et xsi
sont les seuls espaces de nom prédéfinis que vous n'êtes pas obligé de déclarer. Tous les autres espaces de noms doivent être explicitement déclarés dans chaque requête.
Il existe deux manières de déclarer des espaces de nom:
- via l'instruction
declare
dans XQuery. - via la clause WITH XMLNAMESPACES sur l'instruction TSQL.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow