本篇仅介绍最简单的XML操作,FOR XML AUTO
F1帮助中是这么描述滴:
FOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。它确定产生的 XML 的形状。
并且还有这么段重要提示:
不推荐使用 FOR XML 选项的 XMLDATA 指令。如果是 RAW 和 AUTO 模式,请使用 XSD 生成。在 EXPLICIT 模式下,没有 XMLDATA 指令的替代项。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
以上内容了解下即可,以下内容了解下即可,Let’s Go
先看测试用数据
FROM T
2:
3: 输出
4: GRP_A GRP_B GRP_C VAL
-- -------------------- -------------------- -----------
6: a1 b1 c1 10
7: a1 b1 c2 10
8: a1 b2 c2 40
9: a1 b2 c3 40
10: a1 b2 c3 50
NULL
NULL
NULL
14:
15: (8 行受影响)
最简单嘛,加上三个关键字再看输出结果:
USE DORBEN
GO
3:
FROM T
FOR XML AUTO
输出介个:
结果集是个连接,点开瞧瞧:
/>
/>
/>
/>
/>
/>
/>
/>
新增了FOR XML AUTO关键字后,查询结果集变成了XML,且,原表每行数据现在变成了一行XML节点
其中列数据变成了XML中的属性,如果原列值为NULL,则XML中不予体现,如XML结果集中的第6,7,8行
接下来这个例子依然很简单,仅仅是指定一些别名,列别名和表别名,看代码吧
SELECT
AS GA,
AS GB,
AS GC,
VALUE
AS Record
FOR XML AUTO
输出结果
/>
/>
/>
/>
/>
/>
/>
/>
可以看到,影响的是行名和属性名
现在来添加ELEMENTS选项,看看结果会怎样,SQL及结果如下
SELECT
AS GA,
AS GB,
AS GC,
VALUE
AS Record
FOR XML AUTO,ELEMENTS
输出结果
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
哦耶,变化不小,属性没了,都变成ELEMENT
看到这必然要问的一个问题是,如何让某些字段显示为属性,某些字段显示为元素呢?!这个问题问得好!我们以后再说!呵呵
看到这必然要问的一个问题是,如何让某些字段显示为属性,某些字段显示为元素呢?!这个问题问得好!我们以后再说!呵呵