FOR XML AUTO 模式生成一个 XML 层次结构,其中元素名称映射到表名,属性名称映射到列名。 这会公开数据库表和列信息。 使用 AUTO 模式(服务器端格式)时,可以通过在查询中指定表和列别名来隐藏数据库信息。 这些别名在生成的 XML 文档中作为元素和属性名称返回。
例如,以下查询指定 AUTO 模式;因此,XML 格式是在服务器上完成的:
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
在生成的 XML 文档中,别名用于元素和属性名称:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<C F="Nancy" L="Fuller" />
<CE F="Andrew" L="Peacock" />
<C F="Janet" L="Leverling" />
...
</root>
使用 NESTED 模式(客户端格式设置)时,只为生成的 XML 文档中的属性返回别名。 基表的名称始终作为元素名称返回。 例如,以下查询指定 NESTED 模式。
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
在生成的 XML 文档中,基表的名称将作为元素名称返回,并且不使用表别名:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Person.Contact F="Nancy" L="Fuller" />
<Person.Contact F="Andrew" L="Peacock" />
<Person.Contact F="Janet" L="Leverling" />
...
</root>