av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

SQLServer2005中XML操作函數(shù)詳解

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

大致可分為查詢(xún)類(lèi),修改類(lèi)和跨域查詢(xún)類(lèi)。

查詢(xún)類(lèi)包含query(),value(),exist()和nodes().

修改類(lèi)包含modify().

跨域查詢(xún)類(lèi)包含sql:variable()和sql:column().


查詢(xún)類(lèi)

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

2. value()方法:返回從XML節(jié)點(diǎn)中提取的標(biāo)量值。必須在value()方法的第二個(gè)參數(shù)中指定所返回的標(biāo)量的數(shù)據(jù)類(lèi)型,所以value()方法可以與其它標(biāo)量進(jìn)行比較??捎糜赟ELECT子句和WHERE子句。

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

4. nodes()方法:返回只有一個(gè)欄位的table,且該table的欄位是XML數(shù)據(jù)類(lèi)型。所以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)

修改類(lèi)

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

無(wú)返回值,只能用于SET子句中。

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

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

--更改指定節(jié)點(diǎn)中的標(biāo)量值('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')

跨域查詢(xún)類(lèi)

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

sql:variable()方法:可以在XQuery或XML DML表達(dá)式中應(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表達(dá)式中使用來(lái)自關(guān)系列的值。


網(wǎng)站欄目:SQLServer2005中XML操作函數(shù)詳解
地址分享:http://uogjgqi.cn/article/djidigo.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流