XML-запрос в SQL Server - PullRequest
       14

XML-запрос в SQL Server

5 голосов
/ 19 августа 2009

Я только начинаю запрашивать XML в базе данных SQL Server. У меня проблемы с самым простым запросом. Вот упрощенный пример. Как мне вернуть описание? Оператор 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 Ответ

12 голосов
/ 19 августа 2009

Ну, вы упускаете пространство имен 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"

часть здесь - она ​​объявляет пространство имен (с выбранным вами префиксом - может быть любым - здесь «x») на период запроса к этим данным XML.

Надеюсь, это что-то вернет! ; -)

Марк

...