快速业务通道

深入探讨SQL Server 2000对XML的支持

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-20
sp;XML 文档形式。AUTO模式则将查询结果作为嵌套 
XML 元素返回,在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个
XML 元素,SELECT 子句中列出的列映射到适当的元素特性,当指定了 ELEMENTS 选项后,表
列映射到子元素而非特性。默认情况下,AUTO 模式将表列映射到 XML 特性。 
  在FOR XML AUTO后,还需要添加一个参数“root”,其参数值作为返回的XML文件的
root元素名。比如说,你可以把上面我给出的例子中的root的参数值设为Northwind,你会发
现,返回的XML文件中除了root元素名变为Northwind了以外,其它都没有变化。 
  上面我们说的是直接使用HTTP中执行简单的查询,除此之外你还可以执行更加复杂的
查询,比如说连接不同的表进行查询,请看下面的例子,在下例中,SELECT 语句连接了 
Northwind 数据库的中的 Customers 和 Orders 表,并返回信息。 
   http://localhost/northwind?sql=SELECT 
   Customer.CustomerID%2cCustomer.Contact 
   Name%2c%5bOrder%5d.OrderID+FROM+Customers+ 
  Customer+INNER+JOIN+Orders+%5bOrder% 
   5d+ON+Customer.CustomerID%3d%5bOrder% 
   5d.CustomerID+FOR+XML+AUTO&root=Northwind 
  因为返回的XML文件太长,我就不把它列出来了。 
  如果你不想在Customers表和Orders表中出现嵌套的话,SQL Server 2000还提供另一
个关键字用来替代AUTO,这个关键字就是RAW。RAW 模式将查询结果集中的每一行转换为带有
类属标识符 row 的 XML 元素。为了让您能够深入了解RAW,我再给出一个例子:使用 RAW 模
  下面的查询返回客户和订单信息。在 FOR XML 子句中指定 RAW 模式。 
   SELECT Customers.CustomerID, Orders.OrderID, Orders.OrderDate 
   FROM Customers, Orders 
   WHERE Customers.CustomerID = Orders.CustomerID 
  ORDER BY Customers.CustomerID 
   FOR XML RAW 
  下面是部分结果: 
   <row CustomerID="ALFKI" OrderID="10643" OrderDate="1997-08-25T00:00:00"/> 
   <row CustomerID="ANATR" OrderID="10308" OrderDate="1996-09-18T00:00:00"/> 
   <row CustomerID="ANATR" OrderID="10625" OrderDate="1997-08-08T00:00:00"/> 
   <row CustomerID="AROUT" OrderID="10355" OrderDate="1996-11-15T00:00:00"/> 
  可以使用外部联接指定上面的查询在结果集中返回所有客户,无论这些客户是否有订
   SELECT C.CustomerID, O.OrderID, O.OrderDate 
  FROM Customers C LEFT OUTER JOIN Orders O ON C.CustomerID = 
O.CustomerID ORDER BY C.CustomerID FOR XML RAW 
  下面是部分结果: 
   <row CustomerID="BONAP" OrderID="11076" OrderDate="1998-05-06T00:00:00"/> 
   <row CustomerID="FISSA"/> 
   <row CustomerID="PARIS

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号