关于MSSQL 2000中Select语句FOR XML产生XML文件学习心得
2006-01-11 10:11
381 查看
FOR 子句
FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。
语法
参数
BROWSE
指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。
说明 在含有 FOR BROWSE 选项的 SELECT 语句中无法使用 <lock_hint> HOLDLOCK。
FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。
XML
指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。
RAW
获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符 <row /> 作为元素标记。
测试:
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 模式中的默认值。
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 语句中无法使用 <lock_hint> HOLDLOCK。
FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。
XML
指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。
RAW
获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符 <row /> 作为元素标记。
测试:
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 模式中的默认值。
相关文章推荐
- 关于MSSQL 2000中Select语句FOR XML产生XML文件学习心得
- 关于MSSQL 2000中Select语句FOR XML产生XML文件学习心得
- 关于MSSQL 2000中Select语句FOR XML产生XML文件学习心得
- sql server 2005 学习心得(select查询语句用法)
- oracle 学习之:for循环中包涵select语句
- 关于批处理中FOR语句的使用说明与学习技巧
- Select ..for update(nowait)语句在表级别上产生RS锁,在数据行上产生行级锁(是一种X锁)
- sqlserver FOR XML PATH 语句的应用
- 与MSSQL对比学习MYSQL的心得(七)--查询
- Android学习心得(四) 关于Android studio的更新
- golang 关于 select,for cpu 100%
- 数据库学习心得:在sql语句的各个语法之间的先后顺序是:可以任意的。
- 【SQL Server学习笔记】15:再谈SELECT语句的元素
- 最近关于mvc,xml,事物的学习笔记
- 与MSSQL对比学习MYSQL的心得(五)--运算符
- java学习11--语句:for循环嵌套、转义字符的使用
- 关于对于一个新框架的学习心得
- XML for Microsoft Windows 2000 的新增功能
- MYSQL学习心得(1)--基础SQL语句
- 与MSSQL对比学习MYSQL的心得(五)--运算符