自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 2005中XML操作函數(shù)詳解

數(shù)據(jù)庫 SQL Server 開發(fā)
本文中作者對SQL Server 2005中XML操作函數(shù)作了詳細介紹,希望可以給你帶來幫助。

首先要明確一個基本原則,XML類型的數(shù)據(jù)之間以及XML類型與其它數(shù)據(jù)類型之間都是不能比較的,也就是說XML類型的數(shù)據(jù)不能出現(xiàn)在等號的任何一邊。

大致可分為查詢類,修改類和跨域查詢類。

查詢類包含query(),value(),exist()和nodes().

修改類包含modify().

跨域查詢類包含sql:variable()和sql:column().


查詢類

1. query()方法:返回滿足條件的所有XML行。只能用于SELECT子句當中。

2. value()方法:返回從XML節(jié)點中提取的標量值。必須在value()方法的第二個參數(shù)中指定所返回的標量的數(shù)據(jù)類型,所以value()方法可以與其它標量進行比較。可用于SELECT子句和WHERE子句。

3. exist()方法:返回int型標量的0或者1。對每行的XML數(shù)據(jù)類型進行存在性檢查??捎糜赟ELECT子句和WHERE子句。

4. nodes()方法:返回只有一個欄位的table,且該table的欄位是XML數(shù)據(jù)類型。所以nodes()方法只能出現(xiàn)在FROM子句中。

示例:

1.query()

SELECT pk, xCol.query('/doc[@id = 123]//section')
FROM docs 

2.value()

SELECT xCol.value('data((/doc//section[@num = 3]/heading)[1])', 'nvarchar(max)')
FROM docs

3.exist()

SELECT xCol.query('/doc[@id = 123]//section')
FROM   docs
WHERE  xCol.exist ('/doc[@id = 123]') = 1

4.nodes()

SELECT nref.value('@genre', 'varchar(max)') LastName
FROM   docs CROSS APPLY xCol.nodes('//book') AS R(nref)

修改類

modify()方法:允許修改XML實例的某些部分,例如添加或刪除子樹,或者更新標量值(如將書的價格從9.99替換為39.99)。

無返回值,只能用于SET子句中。

--在指定位置添加子樹('insert...after...')

UPDATE docs SET xCol.modify('
  insert
   <section num="2">
         <heading>Background</heading>
</section>               
  after (/doc/section[@num=1])[1]')

--更改指定節(jié)點中的標量值('replace...with...')

UPDATE XmlCatalog
SET    Document.modify ('
    default namespace = "http://myBooks"
    replace value of (/bookstore/book[@ISBN=
"1-8610-0311-0"]/price)[1] with 49.99')

跨域查詢類

如果數(shù)據(jù)駐留在關(guān)系數(shù)據(jù)類型的列和XML數(shù)據(jù)類型的列的組合中,就可能需要編寫查詢來組合關(guān)系數(shù)據(jù)處理和XML數(shù)據(jù)處理(組合的對象還可以是標量數(shù)據(jù)類型的SQL變量和XML數(shù)據(jù)),這樣的查詢就叫跨域查詢。

sql:variable()方法:可以在XQuery或XML DML表達式中應(yīng)用SQL變量的值。

sql:variable()

DECLARE @isbn varchar(20)
SET     @isbn = '0-7356-1588-2'
SELECT  xCol
FROM    docs
WHERE   xCol.exist ('/book[@ISBN = sql:variable("@isbn")]') = 1

sql:column()方法:可以在XQuery或XML DML表達式中使用來自關(guān)系列的值。

【編輯推薦】

  1. 在ASP.NET中使用Treeview控件和XML
  2. 用XML和XSL來生成動態(tài)頁面
  3. JavaScript解析XML的方法總結(jié)
責任編輯:楊鵬飛 來源: bugchen888的專欄
相關(guān)推薦

2009-04-02 09:46:19

排名函數(shù)排序SQL 2005

2010-09-09 16:10:57

sql server2循環(huán)

2010-07-19 11:17:28

SQL Server

2009-10-23 10:08:29

SQL SERVER

2010-07-12 11:06:37

SQL Server2

2009-10-23 12:44:35

SQL SERVER

2010-10-21 15:13:20

SQL Server系

2010-03-19 10:23:06

2011-08-11 09:12:31

SQL Server nolock

2011-08-22 13:28:56

FOR XMLSQL Server

2010-07-09 11:22:18

SQL Server

2011-09-01 16:13:37

Visual StudSQL Server 存儲過程

2010-07-23 12:55:29

SQL Server

2010-07-13 16:48:14

SQL Server

2011-04-02 16:20:21

SQL SERVER 同步復(fù)制

2011-08-24 09:15:36

SQL Server數(shù)FOR XML AUT

2010-10-25 09:11:22

2010-09-08 14:03:41

SQL函數(shù)CONVERT

2013-03-01 11:27:27

SQL Server2SQL Server

2010-06-28 09:28:32

SQL Server
點贊
收藏

51CTO技術(shù)棧公眾號