深入探讨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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于深入探讨SQL Server 2000对XML的支持的所有评论