FOR XML模式可以是RAW、AUTO、EXPLICIT 或PATH。它确定产生的XML的形状。并且还有这么段重要提示:不推荐使用FOR XML选项的XMLDATA 指令。如果是RAW 和AUTO 模式,请使用XSD 生成。在EXPLICIT 模式下,没有XMLDATA 指令的替代项。后续版本的Microsoft SQL Server将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
接下来我们就介绍一下FOR XML AUTO的使用
先看测试用数据:
- SELECT * FROM T
输出:
- GRP_A GRP_B GRP_C VAL
- ---------- -------- ------- ------
- a1 b1 c1 10
- a1 b1 c2 10
- a1 b2 c2 40
- a1 b2 c3 40
- a1 b2 c3 50
- a2 b3 c3 NULL
- a2 b3 c3 NULL
- a2 b3 c3 NULL
- (8 行受影响)
最简单嘛,加上三个关键字再看输出结果:
- USE DORBEN
- GO
- SELECT * FROM T
- FOR XML AUTO
输出介个:
结果集是个连接,点开瞧瞧:
- <T GRP_A="a1" GRP_B="b1" GRP_C="c1" VAL="10" />
- <T GRP_A="a1" GRP_B="b1" GRP_C="c2" VAL="10" />
- <T GRP_A="a1" GRP_B="b2" GRP_C="c2" VAL="40" />
- <T GRP_A="a1" GRP_B="b2" GRP_C="c3" VAL="40" />
- <T GRP_A="a1" GRP_B="b2" GRP_C="c3" VAL="50" />
- <T GRP_A="a2" GRP_B="b3" GRP_C="c3" />
- <T GRP_A="a2" GRP_B="b3" GRP_C="c3" />
- <T GRP_A="a2" GRP_B="b3" GRP_C="c3" />
新增了FOR XML AUTO关键字后,查询结果集变成了XML,且,原表每行数据现在变成了一行XML节点其中列数据变成了XML中的属性,如果原列值为NULL,则XML中不予体现,如XML结果集中的第6,7,8行。
关于SQL Server数据库中FOR XML AUTO的使用的相关知识就介绍到这里了想,希望本次的介绍能够对您有所收获!
【编辑推荐】