XML-запрос в SQL Server
Я только начинаю запрашивать 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 ответ
Решение
Ну, вы упускаете пространство имен 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.
Надеюсь, это что-то вернет!;-)
Марк