SQL Server中的XML查询

时间:2009-08-19 19:08:02

标签: sql sql-server xml xquery

我刚开始在SQL Server数据库中查询XML。我遇到了最基本的查询问题。这是一个简化的例子。我如何返回描述?下面的SELECT语句是我正在使用的,但它什么都不返回。

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

这是我正在使用的XML文件的片段:

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

1 个答案:

答案 0 :(得分:12)

好吧,你错过了XML命名空间! : - )

试试这个:

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

神奇的是

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

此处部分 - 它在该XML数据的查询期间声明了一个名称空间(带有您选择的前缀 - 可以是任何内容 - 此处为'x')。

希望,这会回归一些东西! ; - )

马克