SQLServer2005 XML數(shù)據(jù)操作代碼
更新時間:2010年06月29日 09:29:30 作者:
在項目中經(jīng)常用XML文件,看看T-SQL程序設計發(fā)現(xiàn)SQLSERVER2005居然可以處理XML類型,而且還可以使用類似于Xpath的查詢語法查詢。
示例:
創(chuàng)建Table
CREATE TABLE [dbo].[xmlTable](
[id] [int] IDENTITY(1,1) NOT NULL,
[doc] [xml] NULL
)
一。插入數(shù)據(jù)
1.通過XML文件插入
1.xml
<?xml version='1.0' encoding='utf-8' ?>
<dd>
<a id="2">dafaf2</a>
<a id="3">dafaf3</a>
<a id="4">dafaf4</a>
</dd>
insert into xmlTable(doc)
select * from
openrowset(BULK 'C:\Documents and Settings\Administrator\桌面\1.xml',SINGLE_CLOB) as x
2.通過字符串插入
insert into xmlTable(doc) values('<dd><a>123</a></d>')
二。查詢
select doc.value('(/dd/a[@id>2])[1]','nvarchar(50)') as xm from xmlTable
select * from xmlTable where doc.value('(/dd/a[@id>2])[1]','nvarchar(50)') ='博客園'
三。更新
1.插入節(jié)點
update xmlTable set doc.modify('insert <a>123</a> into (/dd)[1]')
注:insert <要插入的節(jié)點> 插入到 <節(jié)點里面>
into --插入里面
after --插入節(jié)點后面
before --插入節(jié)點前面
2.刪除節(jié)點
update xmlTable
set doc.modify('delete (/dd/a)[1]') --刪除 /dd/a 的第一個節(jié)點
3.修改節(jié)點
update xmlTable
set doc.modify('replace value of (/dd/a/text())[1] with "博客園"')
暫時只學到這么多,以后再寫。。。
創(chuàng)建Table
復制代碼 代碼如下:
CREATE TABLE [dbo].[xmlTable](
[id] [int] IDENTITY(1,1) NOT NULL,
[doc] [xml] NULL
)
一。插入數(shù)據(jù)
1.通過XML文件插入
1.xml
復制代碼 代碼如下:
<?xml version='1.0' encoding='utf-8' ?>
<dd>
<a id="2">dafaf2</a>
<a id="3">dafaf3</a>
<a id="4">dafaf4</a>
</dd>
復制代碼 代碼如下:
insert into xmlTable(doc)
select * from
openrowset(BULK 'C:\Documents and Settings\Administrator\桌面\1.xml',SINGLE_CLOB) as x
2.通過字符串插入
insert into xmlTable(doc) values('<dd><a>123</a></d>')
二。查詢
select doc.value('(/dd/a[@id>2])[1]','nvarchar(50)') as xm from xmlTable
select * from xmlTable where doc.value('(/dd/a[@id>2])[1]','nvarchar(50)') ='博客園'
三。更新
1.插入節(jié)點
update xmlTable set doc.modify('insert <a>123</a> into (/dd)[1]')
注:insert <要插入的節(jié)點> 插入到 <節(jié)點里面>
into --插入里面
after --插入節(jié)點后面
before --插入節(jié)點前面
2.刪除節(jié)點
update xmlTable
set doc.modify('delete (/dd/a)[1]') --刪除 /dd/a 的第一個節(jié)點
3.修改節(jié)點
update xmlTable
set doc.modify('replace value of (/dd/a/text())[1] with "博客園"')
暫時只學到這么多,以后再寫。。。
相關(guān)文章
SQL Server 2005 DTS導入平面數(shù)據(jù)出現(xiàn)錯誤解決方案
SQL Server 2005 DTS導入平面數(shù)據(jù)源時,總是被截斷,無法執(zhí)行的錯誤解決方案2012-11-11SQLServer 2005數(shù)據(jù)庫連接字符串 連接sql2005必備資料
現(xiàn)在好多朋友開始用sqlserver 2005了,因為跟sql2000有區(qū)別,所以這里整理了下,需要的朋友可以參考下。2010-04-04Windows2003 SQL2005添加系統(tǒng)用戶修改系統(tǒng)登錄密碼
這篇文章主要介紹了Windows2003 SQL2005添加系統(tǒng)用戶修改系統(tǒng)登錄密碼的方法,大家如何忘記了系統(tǒng)的密碼可以試試這個方法2013-11-11sysservers 中找不到服務器,請執(zhí)行 sp_addlinkedserver 將該服務器添加到sysserver
sysservers 中找不到服務器,請執(zhí)行 sp_addlinkedserver 將該服務器添加到sysserver 錯誤的解決方法2011-09-09玩轉(zhuǎn)-SQL2005數(shù)據(jù)庫行列轉(zhuǎn)換
雖然開發(fā)過程中沒用過行列轉(zhuǎn)換,但是聽說面試時常常會遇到這個問題,以前在網(wǎng)上也看到過大神的例子,今天自己仔細的玩了下,希望和大家分享一下了2013-11-11sqlserver中獲取當前日期的午夜的時間值的實現(xiàn)方法
MS SQLServer,如何獲取當前系統(tǒng)日期的午夜的時間值的方法,需要的朋友可以參考下。2011-09-09MSSQL2005 INSERT,UPDATE,DELETE 之OUTPUT子句使用實例
MSSQL2005 INSERT,UPDATE,DELETE使用實例,大家可以看下。2009-10-10