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 |
图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已类型化,则节点的类型必须是具有简单类型内容(列表或原子类型)的单个元素、文本节点或属性节点,不能是联合类型、复杂类型、处理指令、文档节点或注释节点。否则,将返回错误。
Expression2 |
标识节点的新值。在修改类型化的XML实例中,Expression2与Expression1必须是相同类型。
下面的示例演示了更新XML中元素的文本和属性值的方法。每次更改时,都会显示XML,如图4所示。
DECLARE @myDoc xml SET @myDoc = ’ 张洪举 卢桂章 ’ select @myDoc |
– 更新ID为1的item中的title元素的文本
SET @myDoc.modify(’ replace value of (/root/item[@ID=1]/title/text())[1] with “Ajax实战攻略” ’) select @myDoc |
– 更新属性值
SET @myDoc.modify(’ replace value of (/root/item[@ID=2]/@ID)[1] with “3” ’) select @myDoc |
图4 更改XML中元素的文本和属性值
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
SQL Server 2005支持服务结束 升级何去何从
SQL Server 2005的支持就要结束了,就在2016年4月12日,SQL Server 2005的客户们应该升级了。
-
SQL Server 2005即将终止服务 你准备好了么?
2016年4月12日,微软将正式终止SQL Server 2005相关服务。微软正在终止扩展支持,这意味着不再有新特性更新,什么都没了。
-
解决SQL服务器提示属性IsLocked不可用于登录用户的错误
在SQL Server中,权限的分配很重要。特别是在用户数量众多的数据库里面,用户权限,架构的划分经常会导致权限之间的冲突,导致无法登陆。
-
TT数据库特别推荐:SQL Server编年史
无论是菜鸟还是资深DBA,除了要掌握基本的数据库管理、操作之外,还需要对不同产品的发展历史有一个了解。