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?

Était-ce utile?

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:

  1. via l'instruction declare dans XQuery.
  2. via la clause WITH XMLNAMESPACES sur l'instruction TSQL.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top