Reputation: 2628
I just starting to query XML within a SQL Server database. I am having trouble with the most basic query. Here is a simplified example. How do I return description? The SELECT statement below is what I am using, but it returns nothing.
SELECT Incidents.IncidentXML.query
('data(/dsIncident/IncidentInformation/Description)') AS Description
FROM Incidents
This is the snippet of the XML file that I am using:
<dsIncident xmlns="http://tempuri.org/dsIncident.xsd">
<IncidentInformation>
<Description>This is the description.</Description>
<Country>Singapore</Country>
</IncidentInformation>
</dsIncident>
Upvotes: 5
Views: 4951
Reputation: 755321
Well, you're missing out on the XML namespace! :-)
Try this:
SELECT
Incidents.IncidentXML.query('declare namespace x="http://tempuri.org/dsIncident.xsd";
(/x:dsIncident/x:IncidentInformation/x:Description)') AS Description
FROM Incidents
The magic is the
declare namespace x="http://tempuri.org/dsIncident.xsd"
part here - it declares a namespace (with a prefix of your choice - can be anything - here 'x') for the period of the query on that XML data.
Hopefully, that'll return something! ;-)
Marc
Upvotes: 13