网络编程
位置:首页>> 网络编程>> 数据库>> SQL Server 2008中有关XML的新功能(4)

SQL Server 2008中有关XML的新功能(4)

作者:戴羽 来源:IT专家网 发布时间:2008-06-04 12:57:00 

标签:SQL,Server,sql,2008,xml

4 增强了XQuery

SQL Server 2005推出了xml 数据类型,它提供了一些你可以使用的方法来对存储在一个列或变量中的XML数据进行操作。你可以执行的大多数操作都使用XQuery语法来操纵和使用XML数据。SQL Server 2005所支持的XQuery 语法包括被称作FLWOR 表达式的for、where、order by和return 条件子句,你可以使用它来循环迭代一个XML文档的节点和返回结果值。

SQL Server 2008增加了对let条件子句的支持,它是用来在XQuery表达式中对变量进行赋值的,例如下面的示例:

 

declare @x xml
  set @x=
  '<Invoices>
  <Invoice>
   <Customer>Kim Abercrombie</Customer>
   <Items>
   <Item ProductID="2" Price="1.99" Quantity="1" />
   <Item ProductID="3" Price="2.99" Quantity="2" />
   <Item ProductID="5" Price="1.99" Quantity="1" />
   </Items>
  </Invoice>
  <Invoice>
   <Customer>Margaret Smith</Customer>
   <Items>
   <Item ProductID="2" Price="1.99" Quantity="1"/>
   </Items>
  </Invoice>
  </Invoices>'
  SELECT @x.query(
  '<Orders>
  {
  for $invoice in /Invoices/Invoice
  let $count :=count($invoice/Items/Item)
  order by $count
  return
  <Order>
  {$invoice/Customer}
  <ItemCount>{$count}</ItemCount>
  </Order>
  }
</Orders>') 

这个例子返回下面的XML:

<Orders>
<Order>
 <Customer>Margaret Smith</Customer>
 <ItemCount>1</ItemCount>
</Order>
<Order>
 <Customer>Kim Abercrombie</Customer>
 <ItemCount>3</ItemCount>
</Order>
</Orders> 

要注意SQL Server 2008不允许对构造元素赋值。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com