2013-06-22 8 views
3

Я новичок в SQL Server и T-SQL. Как я могу запросить информацию, хранящуюся в этом xml в SQL Server 2008 R2?Query Xml в SQL Server 2008 R2

XML:

<smp:Root xmlns:smp="http://tempuri.org/smp.xsd" header="Test Title"> 
    <smp:Sections> 
    <smp:G3 idnumber="01"> 
     <SectionHost>ABC</SectionHost> 
    </smp:G3> 
    <smp:G2 idnumber="01"> 
     <SectionHost>DEF</SectionHost> 
    </smp:G2> 
    </smp:Sections> 
</smp:Root> 
+0

Я добавил еще одну ссылку для функций Xpath, они также могут помочь. – KeyboardFriendly

ответ

3

Если у вас есть Xml хранится в Xml колонке просто использовать value method для shred в Xml.

В следующий раз попробовать и опубликовать некоторые DDL, DML, чтобы показать нам, что вы пробовали, ваши структуры таблиц и т.д.

Но попробуйте это

WITH XMLNAMESPACES (Default 'http://tempuri.org/smp.xsd') 
SELECT  
    a.value('@header', 'nvarchar(50)') as Header, 
    b.value('local-name(.)', 'nvarchar(50)') as Sections, 
    b.value('@idnumber' ,'int') as IdNumber, 
    b.value('.' , 'nvarchar(20)') as Host 

From ATable As x 

       Cross Apply x.AXmlColumn.nodes('Root') a(a) 
           Cross Apply a.nodes('Sections/*') b(b) 

Вот некоторые полезные links, чтобы вы начали:

https://www.simple-talk.com/sql/learn-sql-server/the-xml-methods-in-sql-server/

http://blog.sqlauthority.com/2008/01/15/sql-server-what-is-dml-ddl-dcl-and-tcl-introduction-and-examples/

http://msdn.microsoft.com/en-us/library/ms189254.aspx