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
时间: 2024-10-22 17:06:50

SQL Server 2008中有关XML的新功能的相关文章

SQL Server 2008中的数据表压缩功能详细介绍_mssql2008

SQL Server 2005 SP2为我们带来了vardecimal功能,当时针对decimail和numeric数据类型推出了新的存储格式--vardecimal.vardecimal存储格式允许 decimal和numeric数据类型的存储作为一个可变长度列. 这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可以为典型的数据仓库节省30%的空间,而SQL Server 2008在这一基础上又进一步增强了数据压缩功能.SQL Server 2008现在支持

SQL Server 2008中XML的新增功能

SQL Server 技术文章 作者:Graeme Malcolm(内容主管) 技术审查:Dragan Tomic 和 Michael Rys 项目编辑:Joanne Hodgins 发布日期:2008 年 8 月 适用产品:SQL Server 2008 摘要:Microsoft SQL Server 2008 通过增强对 XML 架构验证和 XQuery 的支持及增加 xml 数据类型,构建对 XML 的广泛支持. 版权 这是一份预备文档,在本文档中所述软件的最终商业版本发布之前,该文档的内

SQL Server 2008中新的日期时间数据类型

SQL Server 2008 终于发布新版了,虽然还只是另一个社区测试版而非完全版.每当新软件发布,大 家最关系的问得最多的问题就是:有些什么新特性?SQL Server 2008有很多新功能和新工具.不过,本文 还是主要为大家介绍SQL Server 2008七月预览版引入的新数据类型,并对DATETIME数据类型的功能进行 专门讨论. SQL Server 2008中DATETIME功能的最大转变就是引入了四种DATETIME数据类型,分别为 DATE.TIME.DATETIMEOFFSE

SQL Server 2008中的新日期数据类型

你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了一些新的日期数据类允许你只存储一个日期.更高精度的时间值等.这些新的数据类型为你存储日期和时间相关信息提供了一些附加选项.在本篇文章中,我将介绍这些新的日期数据类型以及与旧版本的SQL Server中现有的数据类型进行比较. 回顾旧的日期数据类型 在我们开始讨论SQL Server 2008中新的日期数据类型之前,先来回顾一下SQL Server 2005中

利用Ring Buffer在SQL Server 2008中进行连接故障排除

原文:利用Ring Buffer在SQL Server 2008中进行连接故障排除 出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/11/21/ring-buffer-sql-server-2008.aspx SQL Server 2008中包含一个新功能,旨在帮助解决特别棘手的连接问题.这个新功能是Connectivity Ring Buffer,它可以捕捉每一个由服务器发起的连接关闭记录(server-initiated connection

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

本文探讨 SQL Server 2005 中内置的 XML 支持.描述了这种支持如何与 .NET 框架 V2.0 和本机代码(例如 OLEDB 和 SQLXML)均支持的客户端编程相集成. 一.简介 可扩展标记语言 (XML) 作为一种与平台无关的数据表示形式已被广泛采用.它对于在松散耦合且完全不同的系统,以及各种企业到企业 (B2B) 应用和工作流范畴内交换信息是很有用的.数据交换已成为 XML 技术的主要驱动力之一.. XML 在企业应用程序中的使用正日益广泛,它主要用于对半结构化和非结构化

Microsoft SQL Server 2005 中的 XML 选项

本文介绍 Visual Studio 2005/SQL Server 2005 环境中用于处理 XML 数据的三个选项,包括使用方案以及指导用户在各选项之间进行选择的指南. 一.System.Xml.SQLXML 和 XML 数据类型简介 本节简要介绍 Microsoft SQL Server 2000 中提供的 XML 支持的发展历史,并概要介绍 Microsoft Visual Studio 2005/SQL Server 2005 环境中提供的用于处理 XML 和关系数据的三个选项.这三个

SQL Server Yukon 中的XML 数据类型

server|xml|数据|数据类型 SQL Server Yukon 中的XML 数据类型 作者:Suhil Srinivas 翻译:朱二 原文出处:http://www.c-sharpcorner.com/Longhorn/Yukon/XmlDataTypesInYukon.asp描述 这篇文章介绍了 SQL Server 最新版本 Yukon Beta1 中的新增数据类型.对任何了解 SQL Server2000 以及其他数据库的开发者来说,本文是 一个好的起点.介绍 当SQL Serve

使用SQL Server 2008中对象相关性

SQL Server的以前版本在跟踪对象相关性方面做的并不好.原因是所有的对象相关性都是由对象ID来跟踪的,这意味着对象一开始就必须存在.但是,通过根据对象名称来跟踪对象SQL Server 2008极大地扩展了跟踪对象的能力,而不用再依赖ID.该方法的好处是在一些对象已经从数据库中转移出去后,还可以继续跟踪对象,甚至在对象没有建立时也可以进行跟踪. 新管理对象 SQL Server 2008引进了两个新动态管理函数和新系统视图,用于跟踪对象相关性.这两个新对象包括Database Engine