sqlserver2005 xml字段的讀寫操作
在表xmlTest內(nèi)創(chuàng)建一個字段,命名_x,設(shè)置數(shù)據(jù)類型為xml。
2.寫入xml
insert into xmlTest (_x) values('
<root>
<item attr1="a1" attr2="a2">item11</item>
<item attr1="a1" attr2="a2">item12</item>
</root>
')
go
如此再插入一條記錄:
insert into xmlTest (_x) values('
<root>
<item attr1="b1" attr2="b2">item21</item>
<item attr1="b1" attr2="b2">item22</item>
</root>
')
3.查詢數(shù)據(jù)
3.1 查詢字段所有數(shù)據(jù)
select _x from xmlText
結(jié)果如圖:

3.2 查詢root下面的第一個item節(jié)點(diǎn)
select _x.query('root/item[1]')
from xmlTest
結(jié)果:

3.3 查詢root下面的第一個item節(jié)點(diǎn)的值
select _x.value('(root/item)[1]','varchar(50)')
from xmlTest
結(jié)果:

3.3 查詢root下面的第二個item節(jié)點(diǎn)的attr2屬性值
select _x.value('(root/item/@attr2)[2]','varchar(50)')
from xmlTest
結(jié)果:

3.4 查詢表中每條記錄的xml字段的item節(jié)點(diǎn)值,全部列出來
SELECT t2.c1.value('.','varchar(20)') as items
from xmlTest
cross apply _x.nodes('root/item') as t2(c1)
結(jié)果:

3.5 查詢表中id=1記錄的xml的所有item字段的attr2屬性值
SELECT t2.c1.value('@attr2','varchar(20)') as attr2
from xmlTest
cross apply _x.nodes('root/item') as t2(c1)
where id='1'
結(jié)果:
3.6 查詢id為1的所有節(jié)點(diǎn)中attr1屬性為a1的第一個匹配節(jié)點(diǎn)的attr2屬性值
select _x.value('(root/item[@attr1="a1"]/@attr2)[1]','varchar(50)')
from xmlTest where id='1'
結(jié)果:
3.7 多表查詢
例如:存在另外1個table:t2,其字段xmlid關(guān)聯(lián)表xmlTest,而attr1關(guān)聯(lián)xmlTest的_x字段中的attr1屬性值。
查詢表xmlTest中id=‘1'記錄中_x字段內(nèi)item節(jié)點(diǎn)中attr1為表t2中attr1字段值時,item節(jié)點(diǎn)中attr2的屬性值
select xmlTest._x.value('(root/item[@attr1=sql:column("t2.attr1")]/@attr2)[1]','varchar(50)') as attr2,t2.attr1
from xmlTest join t2 on t2.xmlid=xmlTest.id
where xmlTest.id='1'
4.修改數(shù)據(jù)
4.1 修改表中id=1記錄的第一個item節(jié)點(diǎn)值
UPDATE xmlTest
set _x.modify('replace value of (root/item/text())[1] with "xxxxx"')
where id='1'
select _x.query('root/item[1]') as item1
from xmlTest
結(jié)果:

4.2 修改表中id=2記錄的第二個item節(jié)點(diǎn)的attr2屬性值
UPDATE xmlTest
set _x.modify('replace value of (root/item/@attr2)[2] with "2222b"')
where id='2'
select _x.query('root/item[2]') as item1
from xmlTest
結(jié)果:

相關(guān)文章
SqlServer2005 自動備份并存儲另一電腦上的存儲過程函數(shù)
SqlServer2005自動備份并存儲另一電腦上的存儲函數(shù),想要備份的朋友可以參考下。2011-06-06SQL Server 2005 DTS導(dǎo)入平面數(shù)據(jù)出現(xiàn)錯誤解決方案
SQL Server 2005 DTS導(dǎo)入平面數(shù)據(jù)源時,總是被截斷,無法執(zhí)行的錯誤解決方案2012-11-11Sql Server安裝出錯,安裝程序配置服務(wù)器失敗的解決方法小結(jié)
機(jī)子之前有裝了sql server 2000,而且可以正常使用,最近突然無法連接到本地數(shù)據(jù)庫,打算重裝,結(jié)果重裝時出現(xiàn)了無法安裝完畢的問題,一下總結(jié)了重裝時需要注意的問題,以及常見錯誤的解決方法2012-10-10mdf文件和ldf文件導(dǎo)入到sql server 2005實現(xiàn)語句
導(dǎo)入mdf文件和ldf文件到數(shù)據(jù)庫是網(wǎng)站搬家或者是初學(xué)者學(xué)習(xí)源碼是必要的一步,接下來為大家詳細(xì)介紹實現(xiàn)sql語句,感興趣的你可不要錯過了哈希望可以幫助到你2013-03-03SQL server 2005中設(shè)置自動編號字段的方法
這篇文章主要介紹了SQL server 2005中設(shè)置自動編號字段的方法 ,需要的朋友可以參考下2015-08-08SQL Server 2005刪除日志文件的幾種方法小結(jié)
SQL Server數(shù)據(jù)庫都有l(wèi)og文件,log文件記錄用戶對數(shù)據(jù)庫修改的操作。可以通過直接刪除log文件和清空日志在清除數(shù)據(jù)庫日志2013-07-07sqlserver2005 TSql新功能學(xué)習(xí)總結(jié)(數(shù)據(jù)類型篇)
sql server2005 TSql新功能學(xué)習(xí)總結(jié)(數(shù)據(jù)類型篇) ,希望對需要的朋友有所幫助。2010-07-07分頁存儲過程(一)使用sql2005的新函數(shù)構(gòu)造分頁存儲過程
分頁存儲過程一直是很多人經(jīng)常用到的東西,怎么樣才能設(shè)計一個既實用,又強(qiáng)大,還可以解決大數(shù)據(jù)量的分頁存儲過程呢?2010-05-05