在查询语句之后,有添加了两个新的要害字: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