本文主要介绍FOR XML 的 AUTO 模式和 RAW 模式
--AUTO 模式将查询结果以嵌套 XML 元素的方式返回。这不能较好地控制从查询结果生成的 XML 的形式。
--如果要生成简单的层次结构,AUTO 模式查询很有用。
--但是,使用 EXPLICIT 模式和使用 PATH 模式在确定从查询结果生成的 XML 的形式方面可提供更好的控制和更大的灵活性。
--> 测试数据:#tb
IF OBJECT_ID('TEMPDB.DBO.#tb') IS NOT NULL
DROP TABLE #tb
GO
CREATE TABLE #tb
(
[id] INT IDENTITY PRIMARY KEY ,
[name] VARCHAR(4),
[type] VARCHAR(10)
)
INSERT #tb
SELECT '彪' , '流氓'
UNION ALL
SELECT '阿紫' , '流氓'
UNION ALL
SELECT '小强' , '流氓'
UNION ALL
SELECT '光辉' , '臭流氓'
UNION ALL
SELECT '小D' , '臭流氓'
UNION ALL
SELECT '野子' , '臭流氓'
--------------开始查询--------------------------
SELECT * FROM #tb FOR XML AUTO
/*
<_x0023_tb />
*/
--对于结果集中的每一行,RAW 模式都生成一个元素 <row>。
--您可以通过向 RAW 模式指定一个可选参数为该元素指定另一个名称,如该查询中所示。
SELECT * FROM #tb FOR XML RAW('流氓们')
--AUTO 模式和 RAW 模式都可以使用 ROOT , ELEMENTS XSINIL, TYPE 指令,这里就不一一列举了