WEB开发网
开发学院数据库MSSQL Server 深入探讨SQL Server 2000对XML的支持 阅读

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

 2008-09-09 10:03:09 来源:WEB开发网   
核心提示: 上面我们说的是直接使用HTTP中执行简单的查询,除此之外你还可以执行更加复杂的查询,深入探讨SQL Server 2000对XML的支持(5),比如说连接不同的表进行查询,请看下面的例子,在 FOR XML 子句中指定 RAW 模式,SELECT Customers.CustomerID,

上面我们说的是直接使用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"/>

可以使用外部联接指定上面的查询在结果集中返回所有客户,无论这些客户是否有订单。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:深入 探讨 SQL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接