-
- 使用SQL语句生成XML
- Weather:晴转小雨,西南风4-5级,(8~16)℃
- 2008-04-24
运行如下的SQL语句,知道得到的结果是什么吗?
select top 10 ID=scid,批号=scNumber,品目=spnumber from dba.AST_scNumber as row order by scid asc for xml auto,elements
结果如下:
-
22328
<批号>060216001dms-09-001-02
<品目>0216001
-
22329
<批号>060216001dms-09-001-02
<品目>0216001
-
22330
<批号>060216001dms-09-001-02
<品目>0216001
-
22331
<批号>060216001dms-09-001-02
<品目>0216001
-
22332
<批号>060216001dms-09-001-02
<品目>0216001
-
22333
<批号>060216001dms-09-001-02
<品目>0216001
-
22334
<批号>060216001dms-09-001-02
<品目>0216001
-
22335
<批号>060216001dms-09-001-02
<品目>0216001
-
22336
<批号>060216001dms-09-001-02
<品目>0216001
-
22337
<批号>060216001dms-09-001-02
<品目>0216001
这样的输出数据方式,对于用AJAX或是生成EXCEL报表或是给程序处理,就带来了极大的方便性;一方面前台可以看到实际的数据,不用再去一个个的对字段名,另一方面,输出一个标准的XML文档对于后台也是很方便的,不用拿个数据集对象来传来传去的。那除了那么一句SQL语句,这个语法到底怎么用呢?以下内容转自:http://blog.csdn.net/octverve/archive/2007/09/29/1805711.aspx
FOR 子句
FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。
语法
[ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT }
[ , XMLDATA ]
[ , ELEMENTS ]
[ , BINARY BASE64 ]
}
]参数
BROWSE
指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。
说明 在含有 FOR BROWSE 选项的 SELECT 语句中无法使用
HOLDLOCK。 FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。
XML
指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。
RAW
获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符
作为元素标记。
测试:select top 2 图书编号=BookNo,图书名称=BookName from sys_books as图书信息 FOR XML raw
结果:<row 图书编号="B001" 图书名称="1"/><row 图书编号="B002" 图书名称="体育报(上海)"/>AUTO
以简单的嵌套 XML 树返回查询结果。在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个 XML 元素。SELECT 子句中列出的列映射到适当的元素特性。
测试:select top 2 图书编号=BookNo,图书名称=BookName from sys_books as 图书信息 FOR XML auto
结果:<图书信息 图书编号="B001" 图书名称="1"/><图书信息 图书编号="B002" 图书名称="体育报(上海)"/>EXPLICIT
指定显式定义所得到的 XML 树的形状。使用此种模式,要求以一种特定的方式编写查询,以便显式指定有关期望的嵌套的附加信息。
XMLDATA
返回架构,但不将根元素添加到结果中。如果指定了 XMLDATA,它将被追加到文档上。
ELEMENTS
指定列作为子元素返回。否则,列将映射到 XML 特性。
测试:
select top 2 图书编号=BookNo,图书名称=BookName from sys_books as 图书信息 FOR XML AUTO,ELEMENTS结果:
<图书信息><图书编号>B001图书编号><图书名称>1图书名称>图书信息><图书信息><图书编号>B002图书编号><图书名称>体育报(上海)图书名称>图书信息>NARY BASE64
指定查询返回二进制 base64 编码格式的二进制数据。使用 RAW 和 EXPLICIT 模式检索二进制数据时,必须指定该选项。这是 AUTO 模式中的默认值。
-
Views(4726) | Comments(3) |
In:
web develop
|
(04/23)
SQL游标原理和使用方法
[使用SQL语句生成XML]的回复
-
TRACY
于
2008-04-29 11:45:16
发表 |
IP:221.201.141.*
好饿啊 ... ... 你没回我消息 ... ...
-
大雾
于
2008-04-29 20:12:20
发表 |
IP:123.120.211.*
大柠檬俺是徐州人,不是山东人,我妈是山东人,徐州铁路分局归济南路局管:)

-
柠檬园主
于
2008-04-30 13:02:05
发表 |
IP:221.201.153.*
噢,原来你妈还是咱老乡啊。。。。。
