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

MSSQL
sql 批量修改数据库表
mssql CASE,GROUP BY用法
利用SQL SERVER建立登录WINDOWS帐号
SQL Server 2008 正式版安装指南 包含序列号
SQL Server 2008图文安装教程
sql 语句 取数据库服务器上所有数据库的名字
sqlserver 数据类型转换小实验
SQL Server 存储过程解析
压缩技术给SQL Server备份文件瘦身
SQL Server 2005 还原数据库错误解决方法
Sql Server datetime问题
SQL语句 操作全集 学习mssql的朋友一定要看
格式导致的Excel导入sql出现异常的解决方法
SQL Server 数据库自动执行管理任务
sql Set IDENTITY_INSERT的用法
sql 修改表的所有者
过程需要参数 ''@statement'' 为 ''ntext/nchar/nvarchar'' 类型
mssql 建立索引
SQL Server 索引结构及其使用(一)--深入浅出理解索引结构
SQL Server 索引结构及其使用(二) 改善SQL语句

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 184 ::
收藏到网摘: 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 函数和模版文件等