加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2008中有关XML的新功能

发布时间:2016-01-16 23:49:10 所属栏目:MsSql教程 来源:网络整理
导读:1 导言 Microsoft 在Microsoft SQL Server 2000中推出了与XML相关的功能以及Transact-SQL 关键字FOR XML和OPENXML ,这使得开发人员可以编写Transact-SQL代码来
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。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读