SQLServer XML數(shù)據(jù)的五種基本操作
更新時(shí)間:2009年07月22日 08:01:11 作者:
SQLServer XML數(shù)據(jù)的五種基本操作語(yǔ)句
1.xml.exist
輸入為XQuery表達(dá)式,返回0,1或是Null。0表示不存在,1表示存在,Null表示輸入為空
2.xml.value
輸入為XQuery表達(dá)式,返回一個(gè)SQL Server標(biāo)量值
3.xml.query
輸入為XQuery表達(dá)式,返回一個(gè)SQL Server XML類(lèi)型流
4.xml.nodes
輸入為XQuery表達(dá)式,返回一個(gè)XML格式文檔的一列行集
5.xml.modify
使用XQuery表達(dá)式對(duì)XML的節(jié)點(diǎn)進(jìn)行insert , update 和 delete 操作。
下面通過(guò)例子對(duì)上面的五種操作進(jìn)行說(shuō)明:
declare @XMLVar xml = '
<catalog>
<book category="ITPro">
<title>Windows Step By Step</title>
<author>Bill Zack</author>
<price>49.99</price>
</book>
<book category="Developer">
<title>Developing ADO .NET</title>
<author>Andrew Brust</author>
<price>39.93</price>
</book>
<book category="ITPro">
<title>Windows Cluster Server</title>
<author>Stephen Forte</author>
<price>59.99</price>
</book>
</catalog>'
1. xml.exist
select @XMLVar.exist('/catalog/book')-----返回1
select @XMLVar.exist('/catalog/book/@category')-----返回1
select @XMLVar.exist('/catalog/book1')-----返回0
set @XMLVar = null
select @XMLVar.exist('/catalog/book')-----返回null
2.xml.value
select @XMLVar.value('/catalog[1]/book[1]','varchar(MAX)')
select @XMLVar.value('/catalog[1]/book[2]/@category','varchar(MAX)')
select @XMLVar.value('/catalog[2]/book[1]','varchar(MAX)')
結(jié)果集為:
Windows Step By StepBill Zack49.99 Developer NULL
3.xml.query
select @XMLVar.query('/catalog[1]/book')
select @XMLVar.query('/catalog[1]/book[1]')
select @XMLVar.query('/catalog[1]/book[2]/author')
結(jié)果集分別為:
<book category="ITPro">
<title>Windows Step By Step</title>
<author>Bill Zack</author>
<price>49.99</price>
</book>
<book category="Developer">
<title>Developing ADO .NET</title>
<author>Andrew Brust</author>
<price>39.93</price>
</book>
<book category="ITPro">
<title>Windows Cluster Server</title>
<author>Stephen Forte</author>
<price>59.99</price>
</book>
<book category="ITPro">
<title>Windows Step By Step</title>
<author>Bill Zack</author>
<price>49.99</price>
</book>
<author>Andrew Brust</author>
4.xml.nodes
select T.c.query('.') as result from @XMLVar.nodes('/catalog/book') as T(c)
select T.c.query('title') as result from @XMLVar.nodes('/catalog/book') as T(c)
結(jié)果集分別為:
<book category="ITPro"><title>Windows Step By Step</title><author>Bill …………
<book category="Developer"><title>Developing ADO .NET</title><author>Andrew …………
<book category="ITPro"><title>Windows Cluster Server</title><author>Stephen …………
<title>Windows Step By Step</title>
<title>Developing ADO .NET</title>
<title>Windows Cluster Server</title>
5.xml.modify
關(guān)于modify內(nèi)容,請(qǐng)參見(jiàn)下一篇文章。
輸入為XQuery表達(dá)式,返回0,1或是Null。0表示不存在,1表示存在,Null表示輸入為空
2.xml.value
輸入為XQuery表達(dá)式,返回一個(gè)SQL Server標(biāo)量值
3.xml.query
輸入為XQuery表達(dá)式,返回一個(gè)SQL Server XML類(lèi)型流
4.xml.nodes
輸入為XQuery表達(dá)式,返回一個(gè)XML格式文檔的一列行集
5.xml.modify
使用XQuery表達(dá)式對(duì)XML的節(jié)點(diǎn)進(jìn)行insert , update 和 delete 操作。
下面通過(guò)例子對(duì)上面的五種操作進(jìn)行說(shuō)明:
declare @XMLVar xml = '
<catalog>
<book category="ITPro">
<title>Windows Step By Step</title>
<author>Bill Zack</author>
<price>49.99</price>
</book>
<book category="Developer">
<title>Developing ADO .NET</title>
<author>Andrew Brust</author>
<price>39.93</price>
</book>
<book category="ITPro">
<title>Windows Cluster Server</title>
<author>Stephen Forte</author>
<price>59.99</price>
</book>
</catalog>'
1. xml.exist
select @XMLVar.exist('/catalog/book')-----返回1
select @XMLVar.exist('/catalog/book/@category')-----返回1
select @XMLVar.exist('/catalog/book1')-----返回0
set @XMLVar = null
select @XMLVar.exist('/catalog/book')-----返回null
2.xml.value
select @XMLVar.value('/catalog[1]/book[1]','varchar(MAX)')
select @XMLVar.value('/catalog[1]/book[2]/@category','varchar(MAX)')
select @XMLVar.value('/catalog[2]/book[1]','varchar(MAX)')
結(jié)果集為:
Windows Step By StepBill Zack49.99 Developer NULL
3.xml.query
select @XMLVar.query('/catalog[1]/book')
select @XMLVar.query('/catalog[1]/book[1]')
select @XMLVar.query('/catalog[1]/book[2]/author')
結(jié)果集分別為:
<book category="ITPro">
<title>Windows Step By Step</title>
<author>Bill Zack</author>
<price>49.99</price>
</book>
<book category="Developer">
<title>Developing ADO .NET</title>
<author>Andrew Brust</author>
<price>39.93</price>
</book>
<book category="ITPro">
<title>Windows Cluster Server</title>
<author>Stephen Forte</author>
<price>59.99</price>
</book>
<book category="ITPro">
<title>Windows Step By Step</title>
<author>Bill Zack</author>
<price>49.99</price>
</book>
<author>Andrew Brust</author>
4.xml.nodes
select T.c.query('.') as result from @XMLVar.nodes('/catalog/book') as T(c)
select T.c.query('title') as result from @XMLVar.nodes('/catalog/book') as T(c)
結(jié)果集分別為:
<book category="ITPro"><title>Windows Step By Step</title><author>Bill …………
<book category="Developer"><title>Developing ADO .NET</title><author>Andrew …………
<book category="ITPro"><title>Windows Cluster Server</title><author>Stephen …………
<title>Windows Step By Step</title>
<title>Developing ADO .NET</title>
<title>Windows Cluster Server</title>
5.xml.modify
關(guān)于modify內(nèi)容,請(qǐng)參見(jiàn)下一篇文章。
您可能感興趣的文章:
- SQL Server解析XML數(shù)據(jù)的方法詳解
- SQL Server中的XML數(shù)據(jù)進(jìn)行insert、update、delete操作實(shí)現(xiàn)代碼
- SQLServer2005 XML數(shù)據(jù)操作代碼
- 關(guān)于SQLServer2005的學(xué)習(xí)筆記 XML的處理
- SQLSERVER 2005中使用sql語(yǔ)句對(duì)xml文件和其數(shù)據(jù)的進(jìn)行操作(很全面)
- SQL Server中的XML數(shù)據(jù)進(jìn)行insert、update、delete
- SQL?Server中的XML數(shù)據(jù)類(lèi)型詳解
相關(guān)文章
SQL參數(shù)化查詢的另一個(gè)理由 命中執(zhí)行計(jì)劃
為了提高數(shù)據(jù)庫(kù)運(yùn)行的效率,我們需要盡可能的命中執(zhí)行計(jì)劃,這樣就可以節(jié)省運(yùn)行時(shí)間2012-08-08
SQL Server定時(shí)收縮數(shù)據(jù)庫(kù)日志為指定大小的示例代碼
SQL Server提供了DBCC SHRINKFILE 命令來(lái)清理事務(wù)日志文件,該命令可以縮小指定文件的大小,并釋放磁盤(pán)空間,本文給大家介紹了SQL Server如何定時(shí)收縮數(shù)據(jù)庫(kù)日志為指定大小,需要的朋友可以參考下2024-03-03
Spark SQL 中對(duì) Map 類(lèi)型的操作函數(shù)示例詳解
這篇文章主要介紹了SparkSQL中對(duì)Map類(lèi)型的操作函數(shù),包括創(chuàng)建、訪問(wèn)、修改、合并、鍵值操作等功能,通過(guò)這些函數(shù),可以方便地進(jìn)行復(fù)雜鍵值對(duì)數(shù)據(jù)的處理,感興趣的朋友跟隨小編一起看看吧2025-01-01
sql 數(shù)據(jù)庫(kù)出現(xiàn)“只讀”提示 解決方法 (sql 錯(cuò)誤 5120)
這篇文章主要介紹了sql 數(shù)據(jù)庫(kù)出現(xiàn)“只讀”提示 解決方法 (sql 錯(cuò)誤 5120),需要的朋友可以參考下2016-02-02
通過(guò)T_sql語(yǔ)句向其中一次填入一條數(shù)據(jù)或一次填入多條數(shù)據(jù)的方式填充數(shù)據(jù)
使用T_sql語(yǔ)句向其中一次填入一條數(shù)據(jù)或一次填入多條數(shù)據(jù)的方式填入數(shù)據(jù),需要的朋友可以參考下2012-10-10
sql語(yǔ)句之?dāng)?shù)據(jù)操作介紹
表中數(shù)據(jù)的變化牽一發(fā)而動(dòng)全身,會(huì)同時(shí)導(dǎo)致到索引中數(shù)據(jù)的變化。因此如果查詢語(yǔ)句不需要索引,就應(yīng)該刪除無(wú)用的索引以提高效率。2013-03-03
在SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json的方法
這篇文章主要介紹了在SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json的方法,需要的朋友可以參考下2015-02-02

