当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库和XML标识语言的集成

MSSQL
SQL Server中删除重复数据的几个方法
SQL Server 基础概念集
SQL Server导入导出
SQL SERVER实用技巧
sql server 常用函数
如何维护SQL Server的“交易日志”
SQL Server数据备份处理过程探讨
JSP中tomcat的SQL Server2000数据库连接池的配置
SQL Server服务器安装剖析
SQL Server 2005数据加密技术应用研究
SQL Server数据库的备份和恢复措施
SQL Server 2005性能测试实践
Jboss下MS SQL Server配置指导
Oracle和SQL Server 追求完美还是讲求实用
SQL Server服务器安装剖析
SQL Server:Oracle与SQL Server事务处理的比较
SQL Server:利用配置文件实现SQL Server与Oralce访问类的转换
SQL Server:测试SQL Server业务规则链接方法
SQL Server :SQL Server 2008高可用性解决方案优劣分析
SQLServer:数据库恢复

MSSQL 中的 SQL Server数据库和XML标识语言的集成


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 162 ::
收藏到网摘: n/a

XML相比HTML给予了Web开发人员更大的编程灵活性。这种技术驱动开发机构尝试把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 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Details].OrderIDORDER BY Orders.OrderIDFOR 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" roductID="72"/> 

  AUTO示例 

  我们执行以下的SQL语句: 

  ‘结果限制为3条记录。SET ROWCOUNT 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Details].OrderIDORDER BY Orders.OrderIDFOR 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 ] 是相应的可选参数。 

  可选元素 

  示例可以让我们对各种设置的内部工作机理有更多的了解,下面我们就进一步研究下FOR XML语句的可选元素XMLDATA。 

  如果你设置该选项,那么XML-Data schema就会包含在结果集合里。以下是SQL语句: 

  SET ROWCOUNT 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Details].OrderIDORDER BY Orders.OrderIDFOR XML AUTO, XMLDATA 

  以上的SQL语句产生以下结果: 

  "urn:schemas-microsoft-com:datatypes">order="many">… 

  ELEMENTS 

  ELEMENTS选项指示各数据列作为子元素而非属性返回。假如你采用AUTO模式就可以只采用该选项。 

  BINARY BASE64 

  使用该选项表示你希望采用base64编码格式表示二进制数据。 

  注:本文只是对FOR XML子句的简单说明,这里要提醒你的是这一部分不过是XML同SQL Server集成需要注意的一点,其他方面的问题还包括IIS的OPENXML 函数和模版文件等