编写生成通用表的查询的过程和对通用表行集进行处理以生成所得到的 XML 文档的过程,与在示例 A 或示例 B 中描述的过程相似。
SELECT 1 as Tag,
NULL as Parent,
C.CustomerID as [Customer!1!cid],
C.ContactName as [Customer!1!name],
NULL as [Order!2!id],
NULL as [Order!2!date],
NULL as [OrderDetail!3!id!id],
NULL as [OrderDetail!3!pid!idref]
FROM Customers C
UNION ALL
SELECT 2 as Tag,
1 as Parent,
C.CustomerID,
NULL,
O.OrderID,
O.OrderDate,
NULL,
NULL
FROM Customers C, Orders O
WHERE C.CustomerID = O.CustomerID
UNION ALL
SELECT 3 as Tag,
2 as Parent,
C.CustomerID,
NULL,
O.OrderID,
NULL,
OD.OrderID,
OD.ProductID
FROM Customers C, Orders O, [Order Details] OD
WHERE C.CustomerID = O.CustomerID
AND O.OrderID = OD.OrderID
ORDER BY [Customer!1!cid], [Order!2!id]
FOR XML EXPLICIT