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

MSSQL
修复断电等损坏的SQL 数据库
SQL 返回期间内的所有日期
数据库中的内容字段被挂马的替换方法 SQL注入
同一个sql语句 连接两个数据库服务器
SQL Server 空值处理策略[推荐]
sql2005 create file遇到操作系统错误5拒绝访问 错误1802
SQL SERVER 删除重复内容行
SQL SERVER 的SQL语句优化方式小结
数据库高并发情况下重复值写入的避免 字段组合约束
一个有趣的SQL命题 用一条语句切换BIT型的真假值
AspNetPager分页控件 存储过程
SQL Server自动生成日期加数字的序列号
远程连接局域网内的SQL Server 的方法
把数据批量插入具有Identity列的表的方法
SQL Server 索引维护sql语句
从两种SQL表连接写法来了解过去
SQLServer 循环批处理
从每个分类选择10条记录的sql语句
SQLServer XML查询快速入门(18句话)
被遗忘的SQLServer比较运算符谓词

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


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