WEB开发网
开发学院数据库MSSQL Server SQL Server 2005的XML数据修改语言 阅读

SQL Server 2005的XML数据修改语言

 2007-05-19 09:42:54 来源:WEB开发网   
核心提示: 图3从非类型化xml变量中删除注释、指令、属性、元素和节点下面的语句演示从类型化XML中删除节点的方法,其中的MyCustomer是前面在“将节点插入类型化的xml列中”部分中创建的,SQL Server 2005的XML数据修改语言(8),UPDATE MyCus

图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 = '<root>
  <item ID="1">
    <title>Ajax实战</title>
    <author>张洪举</author>
  </item>
  <item ID="2">
    <title>ASP.NET实战</title>
    <author>卢桂章</author>
  </item>
</root>'
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中元素的文本和属性值

上一页  3 4 5 6 7 8 

Tags:SQL Server XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接