Microsoft SQL Server 2005 中的 XML 支持(2)

80酷酷网    80kuku.com

  

  XML 数据修改

  SQL Server 2005 提供了用于数据修改的构造作为对 XQuery 的一个扩展。子树可以在指定的节点之前或之后插入,或者作为最左边或最右边的子节点插入。此外,子树也可以插入到父节点,在这种情况下,它成为父节点最右边的子节点。属性、元素和文本节点插入都支持。

  支持删除子树。在这种情况下,整个子树就从 XML 实例中被移除。

  标量值可以用新的标量值进行替换。

  例:将子树插入 XML 实例

  这个示例显示了 modify() 方法的使用,它将一个新的<section> 元素插入编号为 1 的 元素的右边。

UPDATE docs SET xCol.modify('
 insert
  <section num="2">
     <heading>Background</heading>
</section>        
 after (/doc/section[num=1])[1]')

  例:将这本书的价格更新为 $49.99

  下面的更新语句将 ISBN 为 1-8610-0311-0 的书的<price> 替换为 $49.99。该 XML 实例是通过 XML 架构 http://myBooksinstance 进行类型化的,因而就有了 XML 数据修改语句中的命名空间声明。

UPDATE XmlCatalog
SET  Document.modify ('
  default namespace = "http://myBooks"
  replace value of (/bookstore/book[ISBN=
"1-8610-0311-0"]/price)[1] with 49.99')
类型检查和静态错误

  XQuery 引入了类型检查。编译阶段检查 XQuery 表达式和数据修改语句的静态类型正确性,并且将 XML 架构用于类型推理(在类型化 XML 的情况下)。如果表达式在运行时由于类型安全冲突而失败,则会产生静态类型错误。静态错误的例子有:将一个字符串与一个整数相加、在操作需要单值的地方接收一个值序列,以及查询不存在的节点来查找类型化数据。对于因类型不匹配而导致的静态错误,显式转换到正确的类型是一种变通方法。XQuery 运行时错误被转换成空序列。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: