博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2005 For XML[学习]
阅读量:6568 次
发布时间:2019-06-24

本文共 2369 字,大约阅读时间需要 7 分钟。

 

for xml 扩展功能

 

SQL Server 2005 通过 select 语句的 for xml 扩展功能,支持在服务器端以XML 文档的形式返回SQL 查询的结果。

 

语法如下:

select 表1.列名1, 表2.列名2 ...

from 表1,表2

for xml mode

 

其中,mode 指定使用:RAWAUTOEXPLICIT 或 PATH 模式。

(详细内容,查阅MSDN。)

 

创建示例环境:

ExpandedBlockStart.gif
创建表.sql
use
 Winform
go


/*
***** 对象:  Table [dbo].[Person]    脚本日期: 04/25/2010 12:56:29 *****
*/

create
 
table
 
[
dbo
]
.
[
person
]

(
    
[
no
]
 
[
int
]
 
not
 
null
,
    
[
name
]
 
[
varchar
]
(
10
not
 
null
,
    
[
sex
]
 
[
varchar
]
(
2
not
 
null
,
    
[
age
]
 
[
int
]
 
null
,
    
[
address
]
 
[
varchar
]
(
50
null
,
 
constraint
 
[
pk_table_1
]
 
primary
 
key
 
clustered
 
 (
[
no
]
 
asc
)
)
go


/*
***** 对象:  Table [dbo].[grade]    脚本日期: 04/25/2010 12:59:24 *****
*/

create
 
table
 
[
dbo
]
.
[
grade
]

(
    
[
gradeid
]
 
[
int
]
 
identity
(
1
,
1
not
 
null
,
    
[
gradename
]
 
[
varchar
]
(
20
null
,
    
[
remark
]
 
[
varchar
]
(
20
null
,
    
[
img
]
 
[
varbinary
]
(
max
null

)
go


/*
***** 对象:  Table [dbo].[class]    脚本日期: 04/25/2010 13:00:28 *****
*/

create
 
table
 
[
dbo
]
.
[
class
]

(
    
[
classid
]
 
[
int
]
 
identity
(
1
,
1
not
 
null
,
    
[
gradeid
]
 
[
int
]
 
null
,
    
[
classname
]
 
[
varchar
]
(
20
null
,
    
[
createdate
]
 
[
datetime
]
 
null
,
    
[
img
]
 
[
varbinary
]
(
max
null
,
 
constraint
 
[
pk_class
]
 
primary
 
key
 
clustered
 
 (
[
classid
]
 
asc
)

go


Demo 代码:

ExpandedBlockStart.gif
SQL 2005 For XML.sql
--
 SQL 2005 For XML


use
 Winform
go


--
 raw : 是以属性的方式显示字段

select
 
*
 
from
 Person 
for
 xml 
raw


--
 排序

select
 
*
 
from
 Person 
order
 
by
 age 
for
 xml 
raw


--
 auto : 是将表名(如:Person)作为元素名显示字段

select
 
*
 
from
 Person 
for
 xml auto

--
 两表联接: 使用auto后将以父子元素的形式显示xml

select
 classname,gradename,createdate 
from
 class 
join
 grade
on
 grade.gradeid 
=
 class.gradeid 
for
 xml auto


--
 通过root属性添加根节点

select
 classname,gradename,createdate 
from
 class 
join
 grade
on
 grade.gradeid 
=
 class.gradeid 
for
 xml auto, root(
'
Newer
'
)


--
 通过elements属性将每个字段都以元素的形式显示

--
 auto关键字将显示层次结构

select
 classname,gradename,createdate 
from
 class 
join
 grade
on
 grade.gradeid 
=
 class.gradeid 
for
 xml auto,root(
'
Newer
'
),elements


--
 通过elements属性将每个字段都以元素的形式显示

--
 row关键字将无层次结构

select
 classname,gradename,createdate 
from
 class 
join
 grade
on
 grade.gradeid 
=
 class.gradeid 
for
 xml 
raw
,root(
'
Newer
'
),elements


--
 通过elements属性将每个字段都以元素的形式显示

--
 path关键字将无层次结构(与row关键字一样),

--
 但无需elements关键字

select
 classname,gradename,createdate 
from
 class 
join
 grade
on
 grade.gradeid 
=
 class.gradeid 
for
 xml path,root(
'
Newer
'
)
本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2010/05/08/1730424.html,如需转载请自行联系原作者
你可能感兴趣的文章
20165239其米仁增3
查看>>
[Usaco2005 Open]Disease Manangement 疾病管理 BZOJ1688
查看>>
P2657 [SCOI2009]windy数 数位dp入门
查看>>
Elasticsearch 运维实战之1 -- 集群规划
查看>>
jetty安装、配置、优化
查看>>
Android-环境问题
查看>>
Android- assent和raw的区别
查看>>
Vue-系统修饰键
查看>>
1264: [AHOI2006]基因匹配Match
查看>>
多表一对一左关联
查看>>
关于node.js的进程管理
查看>>
tinymce4.x 上传本地图片(自己写个插件)
查看>>
极客学院职业路径图课程视频下载-爬虫
查看>>
java,使用get、post请求url地址
查看>>
基于Maven构建Web项目
查看>>
Linux下修改Mysql的用户(root)的密码
查看>>
Reactjs 的 PropTypes 使用方法
查看>>
linux开机流程
查看>>
【转载】反向代理为何叫反向代理?
查看>>
Windows 7环境下安装PHP 5.2.17
查看>>