2009-08-19 10 views
4

Je commence juste à interroger XML dans une base de données SQL Server. J'ai des problèmes avec la requête la plus simple. Voici un exemple simplifié. Comment puis-je retourner la description? L'instruction SELECT ci-dessous est ce que j'utilise, mais elle ne renvoie rien.Requête XML dans SQL Server

SELECT Incidents.IncidentXML.query 
('data(/dsIncident/IncidentInformation/Description)') AS Description 
FROM Incidents 

Ceci est l'extrait du fichier XML que j'utilise:

<dsIncident xmlns="http://tempuri.org/dsIncident.xsd"> 
    <IncidentInformation> 
    <Description>This is the description.</Description> 
    <Country>Singapore</Country> 
    </IncidentInformation> 
</dsIncident> 

Répondre

11

Eh bien, vous êtes absent sur l'espace de noms XML! :-)

Essayez ceci:

SELECT 
    Incidents.IncidentXML.query('declare namespace x="http://tempuri.org/dsIncident.xsd"; 
      (/x:dsIncident/x:IncidentInformation/x:Description)') AS Description 
FROM Incidents 

La magie est le

declare namespace x="http://tempuri.org/dsIncident.xsd" 

partie ici - il déclare un espace de noms (avec un préfixe de votre choix - peut être quelque chose - ici x ') pour la période de la requête sur ces données XML.

J'espère que cela vous rapportera quelque chose! ;-)

Marc

Questions connexes