SQL Server2005 新資料型別XML

2021-06-15 21:21:18 字數 1181 閱讀 5592

在sql server2005中繼續延續了微軟在.net中的設計思想 將xml和.net緊密地結合到其中.用.net在sql2005中寫儲存過程定義函式我還沒有研究過,今天就只簡單得談談xml在sql2005中的應用.

相對sqlserver2000而言,2005在資料型別上最大的一點改變就是增加了xml這個資料型別.要把這個東西搞懂先就必須要懂xml.

在資料庫中xml的定義和使用和一般的資料型別沒有多大差別,比如:

與一般的資料型別不同的是,xml下面直接提供了方法,可以對其中的資料進行操作.用到的方法有:

query('query') 方法 返回xml 此方法用於對 xml 例項進行查詢。

假設表xmltest中有xml一欄位xml1='ajax in action

10'

那麼執行

declare @xml1 xml;

select @xml1=xml1

from xmltest

select @xml1.query('/book/bookname')

這個時候就可以查詢到其下面bookname的xml值

ajax in action

value('query','type') 方法 返回具體型別 此方法用於從 xml 例項檢索 sql 型別的值。

比如執行:select @xml1.value('(/book/bookname)[1]','varchar(max)')

注意這裡是[1]表示第乙個資料,不是[0],返回結果:ajax in action

exist('query') 方法 返回布林值 此方法用於確定查詢是否返回非空結果。

比如執行:select @xml1.exist('/book/id') 返回0,這裡是查詢/book/id,無法找到中的id.

modify(xml_dml) 方法  此方法用於指定 xml dml 語句以執行更新。

比如執行:set @xml1.modify('insert unknown after (/book/price)[1]  ');

select @xml1這樣就可以往原xml資料中插入乙個屬性,當然執行結果是:

ajax in action

10unknown

這裡需要注意的是set和select不要混用.

nodes() 方法  此方法用於將 xml 拆分成多行以將 xml 文件的組成部分傳播到行集中。

SQL Server 2005新特性 五

三 查詢通知sql server 2005引入了對sql server 查詢的通知支援。你可以使用這一功能來傳送乙個命令到sql server,並且要求當其後執行的同樣命令產生不同的結果時,sql server生成乙個通知。這一功能是通過從屬物件檢測到基礎資料的改變來實現的。可用通過多種客戶端api...

SQL Server 2005新特性之感悟

自從microsoft公司推出sql server 2005以後,我還沒真正用過它的新特性,microsoft公司推出新軟體也太快了,目前sql server 2008也推出了,沒辦法,趕不上形式啊!今天我就介紹一下sql server 2005的新特性,和我使用的感受,我會根據一些抽象名詞和個別新...

品味SQL Server 2005的幾個新功能

sql server 2005相對於sql server 2000改進很大,有些還是非常實用的。舉幾個例子來簡單說明 這些例子我引用了northwind庫。1.top 表示式 sql server 2000的top是個固定值,是不是覺得不爽,現在改進了。前n名的訂單 declare n int se...