2009-08-19 15 views
4

SQL Serverデータベース内でXMLのクエリを開始しました。私は最も基本的なクエリに問題があります。ここに簡単な例があります。説明を返すにはどうすればいいですか?以下のSELECT文は私が使っているものですが、何も返しません。SQL Server内のXMLクエリ

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> 

答えて

11

をさて、あなたは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データに対する問合せの期間を指定します。

うまくいけば、それは何かを返すでしょう! ;-)

マーク