在 SQLServer2000 中, Microsoft 推出了 Transact-SQL 关键字 FORXML 和 OPENXML 。 FORXML 是对 SELECT 语句的扩展,它返回如下面的示例所示的 XML 流式的查询结果。 SELECT ProductID, ProductName FROM Products Product FOR XML AUTO 这个查询返回一个
 在SQL Server 2000中,Microsoft 推出了Transact-SQL 关键字FOR XML和OPENXML。FOR XML 是对SELECT语句的扩展,它返回如下面的示例所示的XML流式的查询结果。
   SELECT ProductID, ProductName 
   FROM Products Product 
   FOR XML AUTO
   这个查询返回一个如下面示例所示的XML片断:   
 
 
      OPENXML 功能执行与FOR XML 条件子句相反的功能,它创建一个XML文档的rowset ,如下面的示例所示: 
 DECLARE @doc nvarchar(1000)
 SET @doc = '
 
 
 
 DECLARE @xmlDoc integer
 EXEC sp_xml_preparedocument @xmlDoc OUTPUT, @doc
 SELECT * FROM
 OPENXML (@xmlDoc, 'Order/Item', 1)
 WITH
 (OrderID integer '../@OrderID',
 ProductID integer,
 Quantity integer)
 EXEC sp_xml_removedocument @xmlDoc
 注意用sp_xml_preparedocument和sp_xml_removedocument 存储过程来创建XML文档的节点树的一个内存展示的用法。这个Transact-SQL 代码返回下面的rowset。  
 OrderID ProductID Quantity
 1011 1 2
 1011 2 1
 
 
SELECT ProductID, ProductName FROM Products Product FOR XML AUTO
DECLARE @doc nvarchar(1000) SET @doc = '下载本文' DECLARE @xmlDoc integer EXEC sp_xml_preparedocument @xmlDoc OUTPUT, @doc SELECT * FROM OPENXML (@xmlDoc, 'Order/Item', 1) WITH (OrderID integer '../@OrderID', ProductID integer, Quantity integer) EXEC sp_xml_removedocument @xmlDoc