SQL Server和XML的集成(1)

server|xml

SQL Server和XML的集成

作者: BUILDER.COM
Wednesday, June 19 2002 10:11 AM

XML可谓最新的数据存储解决方案了。XML相比HTML给予了Web开发人员更大的编程灵活性。这种新技术驱动开发机构尝试把XML同自己的产品集成起来。微软就是采取如此举措的先驱者。微软公司在开发Internet产品的时候一度慢慢腾腾,现在可就不同了。最近一位微软公司的高级职员就这样说:“你要给我们一刀,伤口里出来的尽是XML。”也许形容得有点过分,但事实确实是这样的:微软的几乎所有产品中都能看到XML的身影。举个例子:微软是如何在其SQL Server产品线中集成XML的呢?下面咱们就来看看关键的FOR XML子句。
以XML的名义获取信息

SQL Server和XML之间的集成首要一点就是根据SQL数据创建XML文件。XML文件的构造并不复杂,用简单的脚本和ADO记录集就可以轻松产生。这个任务虽然不算麻烦,但开发人员却需要针对他们从服务器获取的结果集合产生不同的脚本,或者编写更为复杂的通用脚本。SELECT 语句则由此而配备了新的FOR XML子句。

该子句的语法如下所示:
[ FOR { XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ] } ]

FOR XML子句的XML模式由三种参数值表示:RAW、AUTO或者EXPLICIT。模式决定了结果XML的形式和组成。下面我们就更深入些地通过以下示例了解以上各个XML选项。

RAW示例
我们执行以下的SQL语句:
SET ROWCOUNT 3
SELECT Orders.OrderID, Orders.OrderDate, ProductID
FROM Orders, [Order Details]
WHERE Orders.OrderID = [Order Details].OrderID
ORDER BY Orders.OrderID
FOR XML RAW

执行后产生的结果如下:
<row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="11"/>
<row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="42"/>
<row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="72"/>

AUTO示例
我们执行以下的SQL语句:
‘结果限制为3条记录。
SET ROWCOUNT 3
SELECT Orders.OrderID, Orders.OrderDate, ProductID
FROM Orders, [Order Details]
WHERE Orders.OrderID = [Order Details].OrderID
ORDER BY Orders.OrderID
FOR XML AUTO

产生的结果如下所示:
<Orders OrderID="10248" OrderDate="1996-07-04T00:00:00">
<Order_x0020_Details ProductID="11"/>
<Order_x0020_Details ProductID="42"/>
<Order_x0020_Details ProductID="72"/>
</Orders>

EXPLICIT示例
Explicit模式给予查询编程人员对产生XML的完全控制能力。然而这种控制力度却要价不菲:你得编写每一查询以便SQL语句能包含XML信息。

有关的语法很复杂,而且超出了本文的讨论范围。[ , XMLDATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] 是相应的可选参数。

时间: 2024-12-31 16:08:39

SQL Server和XML的集成(1)的相关文章

SQL Server和XML的集成

server|sql|xml XML可谓最新的数据存储解决方案了.XML相比HTML给予了Web开发人员更大的编程灵活性.这种新技术驱动开发机构尝试把XML同自己的产品集成起来.微软就是采取如此举措的先驱者.微软公司在开发Internet产品的时候一度慢慢腾腾,现在可就不同了.最近一位微软公司的高级职员就这样说:"你要给我们一刀,伤口里出来的尽是XML."也许形容得有点过分,但事实确实是这样的:微软的几乎所有产品中都能看到XML的身影.举个例子:微软是如何在其SQL Server产品线

SQL Server和XML的集成(2)

server|xml 可选元素  示例可以让我们对各种设置的内部工作机理有更多的了解,下面我们就进一步研究下FOR XML语句的可选元素XMLDATA. 如果你设置该选项,那么XML-Data schema就会包含在结果集合里.以下是SQL语句: SET ROWCOUNT 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Deta

SQL Server 2000 XML之七种兵器

server|xml XML,已成为近来最热门的Web技术,它是SQL Server 2000中的重要部分.本文将综合七条SQL Server 2000中最重要的XML综合特性组成XML之七种兵器. 兵器之一:FOR XML 在SQL Server 2000中,标准的T-SQL SELECT语句包括FOR XML子句,它以XML文档形式返回一个查询结果.新的FOR XML子句有三种模式--RAW,AUTO,和EXPLICIT,每个都能对XML文档格式提供附加标准的控制. 下面首先介绍"FOR X

SQL Server中XML与JSON应用比较

title: SQLServer · 特性分析 · SQL Server中XML与JSON应用比较 author: 石沫 背景 SQL Server是一种强大的数据库引擎,不仅性能卓越,稳定,功能还很强大,SQL Server 2016中已经支持JSON.这让我想到以前工作中经常使用的SQL XML,也对比一下他们几个关键领域的应用方法.这两种SQL特性,在实际的工作中也是常用的功能,特别是JSON在最近发展非常火爆,SQL Server也不落后,很快就在SQL Server2016支持. 广义

灵活运用 SQL SERVER FOR XML PATH

原文:灵活运用 SQL SERVER FOR XML PATH         FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主.         一.FOR XML PATH 简单介绍              那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下:        

SQLServer · 特性分析 · SQL Server中XML与JSON应用比较

title: SQLServer · 特性分析 · SQL Server中XML与JSON应用比较 author: 石沫 背景 SQL Server是一种强大的数据库引擎,不仅性能卓越,稳定,功能还很强大,SQL Server 2016中已经支持JSON.这让我想到以前工作中经常使用的SQL XML,也对比一下他们几个关键领域的应用方法.这两种SQL特性,在实际的工作中也是常用的功能,特别是JSON在最近发展非常火爆,SQL Server也不落后,很快就在SQL Server2016支持. 广义

浅析sql server对xml简单操作教程

SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中. 随着SQL Server 对XML字段的支持,相应的,T-SQL语句

SQL Server解析XML数据的方法详解_MsSql

本文实例讲述了SQL Server解析XML数据的方法.分享给大家供大家参考,具体如下: --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <Info Name="Email">dongsheng@xxyy.com</Info> <Info Name="Phone">678945546</

SQL Server解析XML数据的方法详解

本文实例讲述了SQL Server解析XML数据的方法.分享给大家供大家参考,具体如下: --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <Info Name="Email">dongsheng@xxyy.com</Info> <Info Name="Phone">678945546</