国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

sqlserver2005 xml字段的讀寫操作

2020-10-30 19:11:28
字體:
來源:轉載
供稿:網友
1.創建xml字段
在表xmlTest內創建一個字段,命名_x,設置數據類型為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.查詢數據
3.1 查詢字段所有數據
select _x from xmlText
結果如圖:

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

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

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

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

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'

結果:

3.6 查詢id為1的所有節點中attr1屬性為a1的第一個匹配節點的attr2屬性值

select _x.value('(root/item[@attr1="a1"]/@attr2)[1]','varchar(50)')
from xmlTest where id='1'

結果:

3.7 多表查詢

例如:存在另外1個table:t2,其字段xmlid關聯表xmlTest,而attr1關聯xmlTest的_x字段中的attr1屬性值。

查詢表xmlTest中id=‘1'記錄中_x字段內item節點中attr1為表t2中attr1字段值時,item節點中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.修改數據
4.1 修改表中id=1記錄的第一個item節點值
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
結果:

4.2 修改表中id=2記錄的第二個item節點的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
結果:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠安县| 岚皋县| 察雅县| 闻喜县| 海盐县| 长治县| 柯坪县| 垫江县| 宁乡县| 景宁| 滦南县| 舒城县| 胶南市| 桂阳县| 淮南市| 英超| 平罗县| 曲水县| 增城市| 永吉县| 万盛区| 临颍县| 北票市| 犍为县| 南和县| 华容县| 久治县| 凉城县| 丘北县| 商洛市| 留坝县| 富蕴县| 邯郸市| 长武县| 云南省| 新建县| 扎兰屯市| 沂南县| 临沧市| 保山市| 申扎县|