2006-10-16

SQL Server 2005的XML数据修改语言

来源: 本站收集整理 作者:佚名 评论 0 条
 

执行上面的SELECT查询后,可以看到CustomerItem中的XML内容,如下所示:

<C:customer xmlns:C="http://schemas.mybook.com/customerschemas">

<item ID="1">

<customername>北方书城</customername>

<address>北京市海淀区知春路22号</address>

<phone>2222222</phone>

<contact>刘先生</contact>

</item>

<item ID="2">

<customername>东图大厦</customername>

<address>长春市朝阳大街99号</address>

<phone>1111111</phone>

<contact>孙小姐</contact>

</item>

</C:customer>

返回页首返回页首

2.delete

delete用于删除XML实例的节点。其语法格式如下:

delete Expression

Expression是要删除的节点的XQuery表达式。删除该表达式选择的所有节点,以及所选节点中的所有节点或值。表达式不能是根(/)节点。假如表达式返回空序列,则不进行删除,不返回错误。

下面的示例演示了从非类型化的xml变量中删除指令、注释、属性、元素和节点的方法。在每次删除后都会显示XML,结果如图3所示。

DECLARE @myDoc xml

SET @myDoc = '<?Instructions for=TheWC.exe ?>

<root>

<!-- 这里是注释 -->

<item ID="1" ShipTo="广州">这里是文本

<title>Ajax实战</title>

<author>张洪举</author>

</item>

<item ID="2">

<title>ASP.NET实战</title>

<author>卢桂章</author>

</item>

</root>'

SELECT @myDoc

-- 删除注释

SET @myDoc.modify('

delete /root/comment()

')

SELECT @myDoc

-- 删除所有指令

SET @myDoc.modify('

delete //processing-instruction()

')

SELECT @myDoc

-- 删除ID为1的item中的文本节点

SET @myDoc.modify('

delete /root/item[@ID=1]/text()

')

SELECT @myDoc

-- 删除一个属性

SET @myDoc.modify('

delete /root/item[@ID=1]/@ShipTo

')

SELECT @myDoc

-- 删除一个元素

SET @myDoc.modify('

delete /root/item[@ID=2]/author

')

SELECT @myDoc

-- 删除ID为2的item节点

SET @myDoc.modify('

delete /root/item[@ID=2]

')

SELECT @myDoc

GO

a

图3从非类型化xml变量中删除注释、指令、属性、元素和节点

下面的语句演示从类型化XML中删除节点的方法,其中的MyCustomer是前面在“将节点插入类型化的xml列中”部分中创建的。

UPDATE MyCustomer

SET CustomerItem.modify('

declare namespace CS="http://schemas.mybook.com/customerschemas";

delete /CS:customer/item[@ID=2]

');

SELECT CustomerItem FROM MyCustomer;

GO

返回页首返回页首

3.replace

replace用于更新文档中的值。其语法格式如下:

replace value of

Expression1

with

Expression2

Expression1

标识其值要更新的节点。它必须仅标识一个单个节点。假如XML已类型化,则节点的类型必须是具有简单类型内容(列表或原子类型)的单个元素、文本节点或属性节点,不能是联合类型、复杂类型、处理指令、文档节点或注释节点。否则,将返回错误。
共5页: 上一页 [1] [2] [3] 4 [5] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:SQL Server连接失败错误分析与排除  
下一篇:用SQL 2005的ROW_NUMBER() 实现分页功能
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号