在查询语句之后,有添加了两个新的关键字:FOR XML和AUTO。FOR XML关键字可以对现有的关系数据库执行 SQL 查
询,以返回 XML 文档形式。AUTO模式则将查询结果作为嵌套 XML 元素返回,在 FROM 子句内,每个在 SELECT 子句中至
少有一列被列出的表都表示为一个 XML 元素,SELECT 子句中列出的列映射到适当的元素特性,当指定了 ELEMENTS 选项
后,表列映射到子元素而非特性。默认情况下,AUTO 模式将表列映射到 XML 特性。
在FOR XML AUTO后,还需要添加一个参数“root”,其参数值作为返回的XML文件的root元素名。比如说,你可以把上
面我给出的例子中的root的参数值设为Northwind,你会发现,返回的XML文件中除了root元素名变为Northwind了以外,其
它都没有变化。
如果你不想在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
CREATE PROCEDURE GetXml
(
@CustomerID varchar(5)
)
AS
BEGIN
SELECT CustomerID, CompanyName,ContactName
FROM Customers
WHERE CustomerID LIKE @CustomerID + '%'
FOR XML AUTO
END