CNET中国旗舰网站

ZDNet China | CNET科技资讯网 | 政府采购 | 行业网站联盟




 
标题: [分享] SQL Server 2008中有关XML的新功能
wang_hairong
特级会员
Rank: 3Rank: 3



UID 280433
精华 0
积分 1299
帖子 58
威望 580
ZD币 130 元
阅读权限 70
注册 2007-12-25
状态 离线
  楼主
发表于 2008-1-28 15:11  资料  个人空间  短消息  加为好友 
开发者在线

SQL Server 2008中有关XML的新功能

SQL Server 2008中有关XML的新功能
1 导言   Microsoft 在Microsoft SQL Server 2000中推出了与XML相关的功能以及Transact-SQL 关键字FOR XML和OPENXML ,这使得开发人员可以编写Transact-SQL代码来获取XML流形式的查询结果,并将一个XML文档分割成一个rowset。SQL Server 2005显著的扩展了这些XML功能,推出了一个支持XSD schema验证、基于XQuery的操作和XML索引的本地的xml 数据类型。SQL Server 2008建立在之前版本的XML功能基础之上,做了改进来迎接客户在存储和操纵数据库中的XML数据时所面临的挑战。
  2 SQL Server XML 功能的发展历程
  SQL Server的XML功能随着从SQL Server2000版本以来的每一个版本而不断发展。在我们检查SQL Server 2008中的改进之前,通过之前的版本来总结XML功能的发展历程可能会比较有用。
  2.1 SQL Server 2000中的XML功能
  在SQL Server 2000中,Microsoft 推出了Transact-SQL 关键字FOR XML和OPENXML。FOR XML 是对SELECT语句的扩展,它返回如下面的示例所示的XML流式的查询结果。
  SELECT ProductID, ProductName
  FROM Products Product
  FOR XML AUTO
  这个查询返回一个如下面示例所示的XML片断:
<Product ProductID="1" ProductName="Widget"/>
<Product ProductID="2" ProductName="Sprocket"/>
    OPENXML 功能执行与FOR XML 条件子句相反的功能,它创建一个XML文档的rowset ,如下面的示例所示:
DECLARE @doc nvarchar(1000)
SET @doc = '<Order OrderID = "1011">
   <Item ProductID="1" Quantity="2"/>
   <Item ProductID="2" Quantity="1"/>
  </Order>'
DECLARE @xmlDoc integer
EXEC sp_xml_preparedocument @xmlDoc OUTPUT, @doc
SELECT * FROM
OPENXML (@xmlDoc, 'Order/Item', 1)
WITH
(OrderID integer '../@OrderID',
ProductID integer,
Quantity integer)
EXEC sp_xml_removedocument @xmlDoc
  注意用sp_xml_preparedocument和sp_xml_removedocument 存储过程来创建XML文档的节点树的一个内存展示的用法。这个Transact-SQL 代码返回下面的rowset。 
OrderID
ProductID
Quantity
1011
1
2
1011
2
1

[ 本帖最后由 wang_hairong 于 2008-1-28 04:15 PM 编辑 ]




顶部
热点频道推荐: C/S开发| 数据库| WEB开发| 嵌入式| 项目管理|
 



当前时区 GMT+8, 现在时间是 2009-7-5 06:01

  Powered by Discuz! 5.5.0 © 2001-2007 Comsenz Inc.
Processed in 0.064054 second(s), 4/3 queries

清除 Cookies - 联系我们 - ZDNetChina中文社区 - 无图版