SQL Server 中的 XML 查询

Posted

技术标签:

【中文标题】SQL Server 中的 XML 查询【英文标题】:XML Query within SQL Server 【发布时间】:2009-08-19 19:08:02 【问题描述】:

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

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

这是我正在使用的 XML 文件的 sn-p:

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

【问题讨论】:

【参考方案1】:

好吧,您错过了 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"

part here - 它声明一个命名空间(带有您选择的前缀 - 可以是任何东西 - 这里是“x”),用于查询该 XML 数据的时间段。

希望这会有所回报! ;-)

马克

【讨论】:

以上是关于SQL Server 中的 XML 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 中查询 XML 列中的数据

SQL Server xml 路径中的 XML 格式

从 SQL Server 中的 XML 数据类型字段中提取数据

使用SQL Server中的OPENXML解析带有内联架构的XML文件

调整查询以解析 SQL Server 2014 上的 XML 数据

尝试将XML文件放入SQL Server表中