[zt] 淺析資料庫的FOR XML的應用—RAW模式

tolywang發表於2009-07-10


          在sql server 2005中使用xml,非常方便。不僅有XML資料型別,並且對於標準資料行集與XML的轉換,提供了查詢的子句,也提供了處理XML的方法。
FOR XML是sql server提供的查詢子句,透過該查詢語句,將標準資料行集構造為一個XML。FOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。它確定產生的 XML 的形狀。
透過如下這個表的實際查詢,初探FOR XML RAW模式的使用。示例表名叫user,查詢所有資料如下:
select userid,loginname,username,registertime from [user]

現在就對這個表使用FOR XML進行查詢:
1 select * from [user] for xml raw
查詢結果如下:



RAW 模式將查詢結果集中的每一行轉換為帶有通用識別符號 或可能提供元素名稱的 XML 元素。預設情況下,行集中非 NULL 的每列值都將對映為 元素的一個屬性。
2 select * from [user] for xml raw('item')
查詢結果如下:



可以自定義行元素的名稱為item。
3 select * from [user] for xml raw('item'),XMLSCHEMA
查詢結果如下:
 
 
 
   
     
     
       
         
           
         

       

     

     
       
         
           
         

       

     

     
   

 


到此為止,為xmlschema架構。可見,item為一個元素,而UserID,LoginName,UserName,RegisterTime均為該元素的屬性。紅色標識的為元素和屬性。實際查詢結果如下:



4 select * from [user] for xml raw('item'),XMLSCHEMA,ELEMENTS
查詢結果如下:
 
 
 
   
     
       
       
         
           
             
           

         

       

       
         
           
             
           

         

       

       
     

   

 


此xmlschema架構,item為一個元素,而UserID,LoginName,UserName,RegisterTime也都成為了一個元素。此架構比較符合我們平時所用的xml檔案。

  4959E391-63DC-4BBF-ACEA-63EC673AEC45
  admin
  管理員
  2007-02-10T00:00:00


  4959E391-63DC-4BBF-ACEA-63EC673AEC46
  user1
  使用者1
  2007-02-08T00:00:00


  4959E391-63DC-4BBF-ACEA-63EC673AEC47
  user2
  使用者2
  2007-02-09T00:00:00

本文來源於金色座標 , 原文地址:


 


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-609353/,如需轉載,請註明出處,否則將追究法律責任。

相關文章