用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > sqlserver教程

SQL Server 2008中有关XML的新功能

时间:2014-11-30  来源:互联网  作者:佚名

1 导言

Microsoft 在Microsoft SQL(SQL Server培训 mySQL培训 ) 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流式的查询结果。

  SELECTProductID,ProductName

  FROMProductsProduct

  FORXMLAUTO

这个查询返回一个如下面示例所示的XML片断:  

OPENXML 功能执行与FOR XML 条件子句相反的功能,它创建一个XML文档的rowset ,如下面的示例所示:

DECLARE @doc nvarchar(1000)

SET @doc = '

 

 

 '

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

2.2 SQL Server 2005中的XML功能

在SQL Server 2005中,FOR XML 功能得到了增强,它有了对根元素和元素名称的新的选项、使用FOR XML 调用以便你可以建立复杂的层次关系的能力、和一个新的使得你可以定义将要使用XPath 语法来提取的XML结构的PATH 模式,如下面的示例所示:

SELECT ProductID AS '@ProductID',

ProductName AS 'ProductName'

FROM Products

FOR XML PATH ('Product'), ROOT ('Products')

这个查询返回下面的XML:

Widget

Sprocket

除了增强SQL Server 2000已推出的XML功能,SQL Server 2005增加了一个新的、本地的xml 数据类型,使得你可以为XML数据创建变量和列,如下面的示例所示:

CREATE XML SCHEMA COLLECTION ProductSchema AS

'<?xml version="1.0" encoding="UTF-16"?>

 

'

来顶一下
返回首页
返回首页
推荐资讯
从零开始学ASP.NET-基础篇第1/7页 从零开始学ASP.NET-基础篇第1/7页第一天 学习目的: 掌握最基本的Label、TextBox、Button控件
ASP.NET入门数据篇 ASP.NET入门数据篇对于网站编程的初学者来说,总是会上网找些源码来看,但久而
相关文章
栏目更新
栏目热门