SQL Server 中對XML資料的五種基本操作

iSQlServer發表於2009-10-14

1.xml.exist
   輸入為XQuery表示式,返回0,1或是Null。0表示不存在,1表示存在,Null表示輸入為空
2.xml.value
   輸入為XQuery表示式,返回一個SQL Server標量值
3.xml.query
   輸入為XQuery表示式,返回一個SQL Server XML型別流
4.xml.nodes
   輸入為XQuery表示式,返回一個XML格式文件的一列行集
5.xml.modify
   使用XQuery表示式對XML的節點進行insert , update 和 delete 操作。

下面通過例子對上面的五種操作進行說明:

declare @XMLVar xml = '

 

          

             

Windows Step By Step   

              Bill Zack   

              49.99 

        

          

             

Developing ADO .NET   

              Andrew Brust   

              39.93 

        

          

             

Windows Cluster Server   

              Stephen Forte   

              59.99 

      

'

1. xml.exist

   select @XMLVar.exist('/catalog/book')-----返回1  

   select @XMLVar.exist('/catalog/book/@category')-----返回1  

   select @XMLVar.exist('/catalog/book1')-----返回0  

   set @XMLVar = null  

   select @XMLVar.exist('/catalog/book')-----返回null

2.xml.value

   select @XMLVar.value('/catalog[1]/book[1]','varchar(MAX)')  

   select @XMLVar.value('/catalog[1]/book[2]/@category','varchar(MAX)') 

   select @XMLVar.value('/catalog[2]/book[1]','varchar(MAX)')  

   結果集為:  

   Windows Step By StepBill Zack49.99   Developer   NULL

3.xml.query

   select @XMLVar.query('/catalog[1]/book')  

   select @XMLVar.query('/catalog[1]/book[1]')  

   select @XMLVar.query('/catalog[1]/book[2]/author')

   結果集分別為:

  Windows Step By Step
  Bill Zack
  49.99


  Developing ADO .NET
  Andrew Brust
  39.93


  Windows Cluster Server
  Stephen Forte
  59.99



  Windows Step By Step
  Bill Zack
  49.99


Andrew Brust

4.xml.nodes

   select T.c.query('.') as result from @XMLVar.nodes('/catalog/book') as T(c)  

   select T.c.query('title') as result from @XMLVar.nodes('/catalog/book') as T(c)

   結果集分別為:
Windows Step By StepBill …………

Developing ADO .NETAndrew …………
Windows Cluster ServerStephen …………


Windows Step By Step
Developing ADO .NET
Windows Cluster Server

 5.xml.modify

 關於modify內容,請參見

http://blog.csdn.net/tjvictor/archive/2009/07/21/4368496.aspx

 

原創自CSDN TJVictor專欄

http://blog.csdn.net/tjvictor/archive/2009/07/21/4368511.aspx

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

相關文章