
SQL Server是微软公司在数据库市场的主打产品,也是世界三大数据库管理系统之一。本书分为四篇,循序渐进地讲述了SQL Server 2008的功能特性和开发应用。从数据库基本概念到数据库性能调优,由浅入深地对具体知识点进行了详细的实例讲解。本书的知识点覆盖面广,涵盖了SQL Server 2008大部分的功能特点,从最基础的T-SQL语法到SQL Server 2008中新增的高级语法,从数据库基本概念到新增的数据类型,从简单的数据库查询到数据库性能的调优,从数据库的设计到数据库的管理,从数据库应用开发到商务智能应用等方面都有所涉及。
本书内容全面,示例精巧而详尽,是学习SQL Server、了解和使用SQL Server 2008新特性、完善读者的知识结构、扩展SQL Server知识面的很好选择。本书适合各个层次的数据库学习人员和广大程序员阅读,也可作为开发人员的案头必备资料。
前 言
随着计算机科学技术的发展、个人计算机和Internet的普及,越来越多的信息都是以比特(Bit)的方式存储在计算机中。信息时代的到来使得信息数据的存储、管理和安全变得尤为重要。从最早的文件处理系统到后来的网状和层次数据库,再到现在的关系数据库,计算机在数据的处理上越来越复杂,越来越高效。
SQL Server作为微软在数据库管理系统(DBMS)上的主打产品,经过了多个版本的改进后,在数据处理能力方面具有良好的性能,占领了广泛的市场,成为世界三大数据库管理系统之一。而SQL Server 2008作为SQL Server的最新版本,其高效的数据处理、强大的功能以及简易统一的界面操作得到了用户的肯定和好评。
笔者精心编写了本书,目的是让更多人了解并学会使用SQL Server 2008。通过对本书的学习,使读者无论在SQL Server数据库的应用开发,还是数据库的管理,乃至数据库性能调优上都会有所认识和提高。所以本书是读者学习SQL Server、了解和使用SQL Server 2008新特性、完善知识结构、扩展SQL Server知识面的好帮手。
本书的特点
本书由浅入深,从最基础的数据库概念、T-SQL语法讲起,便于数据库初学者入门学习。接下来从数据库安全角度讲解了数据库内容的安全和数据文件的安全解决方案,从而加强读者在数据库应用开发中的安全意识。然后进入核心主题,从多个技术方向讲解了SQL Server 2008在开发中的特性和应用。最后进一步深入高级主题,讲解SQL Server性能优化的相关知识。对于难以掌握的知识点,本书以精巧的示例来说明,深入浅出,清晰易懂。
本书涵盖的知识面广,对SQL Server 2008中大部分的特性和功能都有所涉及。从最基础的T-SQL语法到SQL Server 2008中新增的高级语法,从数据库基本概念到新增的数据类型,从简单的数据库查询到数据库性能的调优,从数据库的创建到数据库的管理,从数据库应用开发到商务智能应用等都有介绍。
本书的特点主要体现在以下几个方面。
* 观点新:在编写本书过程中,编者查阅了大量国内外最新的技术文章,总结出大量全新的观点和技术并应用到本书中。
* 内容新:本书所讲解的知识点和内容是针对最新发行的SQL Server 2008的,对于不推荐使用的和过时的语法及功能不作详细讲解,并提示读者不要使用。
* 由浅入深:本书的编排采用循序渐进的方式,从最基本的数据库概念和数据库操作开始,适合初、中级学者逐步掌握SQL Server 2008的使用、开发和管理。阅读本书不要求必须具有数据库相关的基础知识。
* 内容丰富:本书涵盖的知识面广,无论是SQL Server 2000中的功能,还是SQL Server 2005的新增特性,或者是SQL Server 2008的新特性都囊括其中。
* 示例众多:本书中使用了500多个规范的示例用于大部分知识点的演示和讲解,便于读者学习和理解。尤其是对于难度较高的知识点,本书使用精巧的示例化繁为简,便于读者掌握。这些示例简洁明了,读者可以按照示例进行实践和演练。
* 实用性强:本书不收集冷僻罕见的问题和方法,而是总结了编者多年从事数据库管理和应用开发的经验,具有很强的实用性。
本书的内容安排
本书分为四篇,共22章,从SQL Server的基本概念讲起,再进一步介绍SQL Server的安全特性和管理,然后从开发的角度讲解了数据库的设计、SQL Server的各种开发特性以及SQL Server 2008在开发中的增强功能特性,最后再上升到性能调优,讲解了与数据库性能相关的知识点和性能调优的方法,使读者对SQL Server的认识和应用提升到更高的层次。
第1篇(第1章~第4章)SQL Server基础
本篇讲述了SQL Server的基础知识,包括SQL Server的发展历史、SQL Server 2008的安装和常用工具、T-SQL语法、数据库对象等。概要性地介绍了SQL Server 2008的改进功能和新特性,为希望了解SQL Server数据库的新手提供一些基础知识。
第2篇(第5章~第7章)数据库安全
本篇讲述了与SQL Server 2008安全相关的各种知识,包括数据库加密、用户角色权限设置、数据库的备份与恢复、数据库快照、镜像、日志传送、数据库群集和数据库复制等。本篇通过详尽的操作步骤,多样的示例让读者对数据库安全管理有初步的了解。
第3篇(第8章~第18章)SQL Server 开发
本篇讲述了SQL Server 2008在开发应用中的特性,主要包括数据库设计、CLR集成、XML的使用、ADO.NET的使用、SMO编程、高级T-SQL语法、Service Broker-异步应用程序平台、空间数据类型、跨实例链接、数据库管理自动化、商务智能等。本篇是本书的精华和核心所在,也是需要掌握的SQL Server 2008的核心知识。本篇所讲的内容是SQL Server 2008开发中的高级应用,很多内容是SQL Server 2005之后才出现的新特性。通过本篇读者可以了解和使用SQL Server 2008及其特性进行数据库应用开发。
第4篇(第19章~第22章)数据库性能优化
本篇所介绍的优化相关知识是最容易被忽视,也是在SQL Server应用中最难掌握的知识,主要包括数据存储与索引、数据查询、事务处理、数据库系统调优工具。本篇使用简单明了的示例来分析和介绍数据库优化,以小见大,帮助读者掌握数据库优化的知识。
适合阅读本书的读者
* 希望学习SQL Server的新手。
* 对SQL Server有一定了解,希望进一步提高数据库应用开发技术能力的开发人员。
* 具有SQL Server 2000或2005基础,对SQL Server 2008新特性感兴趣的人员。
* 希望更系统、更全面地了解SQL Server 2008的开发人员。
* 从事数据库应用开发,希望对数据库的管理和性能调优有所了解的开发人员。
* 从事.NET应用开发,具有C#语言相关知识的开发人员。
* 数据分析和设计人员。
本书作者
本书由曾毅主笔编写。其他参与编写和资料整理的人员有苑令轩、王征、陈冠军、王石、程彩红、姜海英、邵毅、张路平、李臻、武勇、徐宁、刘玉珊、麻雪、赵建领、陈刚、吝晓宁、范永龙、姚志娟、赵盟、傅靖、李佳、徐磊、刘丹、肖冰、陈杰、王行恒、冯浩楠、纪超、段桂东、颜盟盟、黄宝生、张珍珍、石淑珍、陈超、牛晓辉、刘聪、任潇、商斌、张双、于志华、李秀劲、李胜美、蔡文仙、杜阳阳、吴兴亮、陈水望、黄任桢、梅婷婷、皇波、白雪蛟、陈浩然、许程程、巩长宇、黄金亮、姜艳超、李军、李庆、彭志林、王志娟、武娜、尹成业等。在此一并表示感谢。
编著者
??
??
??
??
SQL Server数据库技术大全
·II·
·III·
目 录
第1篇 SQL Server基础
第1章 SQL Server 2008概述 2
1.1 SQL Server 2008简介 2
1.1.1 SQL Server发展历史 2
1.1.2 SQL Server 2008的特点 4
1.2 SQL Server 2008架构简介 4
1.2.1 SQL Server 2008系统架构 5
1.2.2 SQL Server 2008的协议 6
1.2.3 SQL Server 2008的查询 6
1.2.4 SQL Server 2008的数据操作 7
1.3 SQL Server 2008的安装 9
1.3.1 SQL Server 2008的版本选择 9
1.3.2 SQL Server 2008的安装环境 11
1.3.3 安装配置SQL Server 2008 11
1.4 使用SQL Server Management Studio 14
1.4.1 SQL Server Management Studio简介 15
1.4.2 使用SSMS打开表 15
1.4.3 在SSMS中使用T-SQL 17
1.4.4 使用SSMS管理服务器和脚本 18
1.5 SQL Server 2008的其他工具 19
1.5.1 使用配置管理器配置数据库 19
1.5.2 使用SQL Server Profiler跟踪数据库 22
1.5.3 使用SQL Server 2008联机丛书 23
1.6 SQL Server 2008系统数据库简介 24
1.6.1 系统数据库master——系统表的管理 24
1.6.2 系统数据库model——数据库的模板 25
1.6.3 系统数据库msdb——为SQL Server提供队列和可靠消息传递 26
1.6.4 系统数据库tempdb——临时工作区 26
1.7 示例数据库 27
1.7.1 安装示例数据库 27
1.7.2 示例数据库AdventureWorks 29
1.7.3 示例数据库AdventureWorksDW 30
1.8 小结 30
第2章 T-SQL基础 31
2.1 T-SQL简介 31
2.1.1 SQL背景 31
2.1.2 SQL语言分类 31
2.1.3 语法约定 32
2.2 基本的SQL语句 32
2.2.1 使用SELECT查询数据 33
2.2.2 使用INSERT插入数据 34
2.2.3 使用UPDATE更新数据 35
2.2.4 使用DELETE删除数据 36
2.3 联接查询 37
2.3.1 内联接(INNER JOIN) 37
2.3.2 外联接(OUTER JOIN) 38
2.3.3 完全联接(FULL JOIN) 39
2.3.4 交叉联接(CROSS JOIN) 40
2.3.5 联接的替代写法 40
2.3.6 联合(UNION) 41
2.4 SQL数据类型 42
2.4.1 精确数字类型 43
2.4.2 近似数字类型 43
2.4.3 字符串类型 43
2.4.4 Unicode字符串类型 44
2.4.5 二进制串类型 44
2.4.6 日期和时间类型 45
2.4.7 其他数据类型 45
2.5 SQL变量 46
2.6 操作符 47
2.7 流程控制 49
2.7.1 批处理 49
2.7.2 语句块 51
2.7.3 条件语句 51
2.7.4 循环语句 52
2.8 函数 53
2.8.1 函数简介 53
2.8.2 聚合函数 55
2.8.3 日期和时间函数 56
2.8.4 数学函数 57
2.8.5 字符串函数 59
2.8.6 其他常用函数 61
2.9 小结 62
第3章 数据库基本操作 63
3.1 数据库操作 63
3.1.1 创建数据库 63
3.1.2 修改数据库 65
3.1.3 删除数据库 66
3.2 表操作 67
3.2.1 表简介 67
3.2.2 使用T-SQL创建表 69
3.2.3 使用SSMS创建表 69
3.2.4 创建临时表 71
3.2.5 使用T-SQL修改表 72
3.2.6 使用SSMS修改表 75
3.2.7 删除表 76
3.3 数据完整性 77
3.3.1 实体完整性 77
3.3.2 域完整性 78
3.3.3 引用完整性 79
3.3.4 用户定义完整性 79
3.4 约束操作 80
3.4.1 约束简介 80
3.4.2 NOT NULL约束 80
3.4.3 DEFAULT约束 81
3.4.4 UNIQUE约束 82
3.4.5 PRIMARY KEY主键约束 84
3.4.6 FOREIGN KEY外键约束 86
3.4.7 CHECK约束 91
3.4.8 规则 92
3.4.9 默认值 94
3.4.10 禁用约束 95
3.5 视图 97
3.5.1 视图简介 97
3.5.2 使用T-SQL创建视图 98
3.5.3 使用SSMS创建视图 99
3.5.4 修改视图 101
3.5.5 删除视图 102
3.6 存储过程 102
3.6.1 存储过程简介 103
3.6.2 创建存储过程 103
3.6.3 修改存储过程 106
3.6.4 删除存储过程 107
3.6.5 存储过程返回数据 107
3.7 用户定义函数 108
3.7.1 用户定义函数简介 108
3.7.2 创建标量值函数 109
3.7.3 创建表值函数 111
3.7.4 修改用户定义函数 112
3.7.5 删除用户定义函数 113
3.8 触发器 113
3.8.1 触发器简介 114
3.8.2 创建触发器 115
3.8.3 修改和删除触发器 117
3.8.4 启用和禁用触发器 118
3.9 命名与编码规范 119
3.9.1 命名规范 119
3.9.2 SQL编码规范 120
3.10 小结 120
第4章 SQL Server 2008的新特性 121
4.1 SSMS增强 121
4.1.1 对象资源管理器增强 121
4.1.2 查询编辑器增强 122
4.1.3 执行计划增强 124
4.1.4 其他新增功能 125
4.2 新的管理特性 126
4.2.1 简洁高效的安装 126
4.2.2 透明数据加密 127
4.2.3 数据压缩和备份压缩 128
4.2.4 审核 130
4.2.5 策略管理 130
4.2.6 其他管理特性 131
4.3 新增数据类型 132
4.3.1 日期和时间类型 132
4.3.2 层次ID 136
4.3.3 地理空间数据类型 137
4.3.4 表值参数类型 138
4.3.5 文件流数据 139
4.4 新的开发特性 140
4.4.1 新增T-SQL语法 140
4.4.2 同步框架 142
4.4.3 稀疏列 143
4.4.4 列集 144
4.4.5 筛选索引 145
4.4.6 其他开发特性增强 146
4.5 商务智能增强 146
4.5.1 集成服务增强 147
4.5.2 分析服务增强 147
4.5.3 报表服务增强 148
4.5.4 Office集成 148
4.6 小结 149
第2篇 数据库安全
第5章 SQL Server 2008安全 152
5.1 新安全机制概论 152
5.1.1 平台与网络安全性 152
5.1.2 主体与数据库对象安全性 154
5.1.3 应用程序安全性 155
5.2 账号管理 156
5.2.1 安全验证方式 156
5.2.2 密码策略 157
5.2.3 高级安全性 158
5.3 登录名管理 159
5.3.1 使用T-SQL创建登录名 159
5.3.2 使用SSMS创建登录名 161
5.3.3 使用T-SQL修改登录名 162
5.3.4 使用SSMS修改登录名 165
5.3.5 删除登录名 165
5.4 用户管理 166
5.4.1 使用T-SQL创建用户 166
5.4.2 使用SSMS创建用户 167
5.4.3 修改用户 168
5.4.4 删除用户 169
5.5 架构管理 169
5.5.1 架构简介 169
5.5.2 使用T-SQL创建架构 170
5.5.3 使用SSMS创建架构 171
5.5.4 修改架构 172
5.5.5 删除架构 173
5.6 用户权限 174
5.6.1 权限简介 174
5.6.2 使用GRANT分配权限 177
5.6.3 使用DENY显式拒绝访问对象 178
5.6.4 使用REVOKE撤销权限 179
5.6.5 语句执行权限 180
5.6.6 使用SSMS管理用户权限 181
5.7 角色管理 184
5.7.1 角色简介 185
5.7.2 服务器角色 185
5.7.3 固定数据库角色 187
5.7.4 用户定义数据库角色 189
5.7.5 应用程序角色 191
5.8 数据加密 194
5.8.1 数据加密简介 194
5.8.2 数据的加密和解密 196
5.8.3 使用证书加密和解密 198
5.8.4 使用透明数据加密 199
5.9 SQL注入攻击 201
5.9.1 SQL注入攻击原理 201
5.9.2 如何防范SQL注入攻击 202
5.10 小结 203
第6章 数据文件安全与灾难恢复 204
6.1 数据文件安全简介 204
6.1.1 业务可持续性 204
6.1.2 SQL Server 2008高可用性技术 205
6.2 数据库的备份与恢复 206
6.2.1 数据库备份简介 206
6.2.2 备份设备 207
6.2.3 数据库备份 209
6.2.4 数据库恢复 211
6.2.5 恢复模式 213
6.3 数据文件的转移 214
6.3.1 分离数据库 215
6.3.2 附加数据库 216
6.4 数据库快照 218
6.4.1 数据库快照原理 218
6.4.2 建立数据库快照 219
6.4.3 管理数据库快照 220
6.5 数据库镜像 221
6.5.1 数据库镜像概论 221
6.5.2 数据库镜像模式 223
6.5.3 使用T-SQL配置数据库镜像 224
6.5.4 使用SSMS配置数据库镜像 228
6.6 日志传送 230
6.6.1 日志传送概述 230
6.6.2 日志传送的服务器角色 230
6.6.3 日志传送的定时作业 231
6.6.4 使用T-SQL配置日志传送 232
6.6.5 使用SSMS配置日志传送 236
6.7 数据库群集 238
6.7.1 群集简介 239
6.7.2 服务器群集配置要求 239
6.7.3 创建Windows故障转移群集 241
6.8 小结 242
第7章 复制 243
7.1 使用bcp导入导出数据 243
7.1.1 bcp实现大容量复制 243
7.1.2 bcp导出 246
7.1.3 格式化文件 247
7.1.4 bcp导入 250
7.1.5 使用BULK INSERT命令 252
7.1.6 使用OPENROWSET()函数 255
7.2 复制概述 258
7.2.1 复制简介 258
7.2.2 复制类型 259
7.2.3 复制代理 261
7.2.4 订阅简介 262
7.3 复制的工作机制 262
7.3.1 快照复制工作机制 263
7.3.2 事务复制工作机制 264
7.3.3 Oracle发布工作机制 265
7.3.4 合并复制工作机制 266
7.4 配置复制 267
7.4.1 准备用于复制的服务器 267
7.4.2 配置快照发布和分发 268
7.4.3 配置快照订阅 272
7.4.4 配置事务复制和合并复制 275
7.5 配置Oracle复制 276
7.5.1 配置Oracle权限 276
7.5.2 准备用于Oracle发布的服务器 277
7.5.3 配置Oracle发布和订阅 278
7.5.4 Oracle发布注意事项 281
7.5.5 数据类型映射 282
7.5.6 Oracle发布管理注意事项 284
7.6 管理复制 285
7.6.1 添加项目 285
7.6.2 删除项目 286
7.6.3 复制监视器 286
7.6.4 提高复制性能 287
7.7 小结 288
第3篇 SQL Server开发
第8章 数据库设计 292
8.1 实体——关系模型 292
8.1.1 基本概念 292
8.1.2 实体集 293
8.1.3 关系集 294
8.1.4 属性 295
8.2 关系 295
8.2.1 一对一的关系 296
8.2.2 一对多的关系 296
8.2.3 多对多的关系 297
8.3 范式 298
8.3.1 第一范式 298
8.3.2 第二范式 299
8.3.3 第三范式 300
8.3.4 Boyce-Codd范式 302
8.3.5 其他范式 302
8.4 数据库建模 303
8.4.1 E-R图 303
8.4.2 关系图 304
8.5 使用PowerDesigner进行建模 306
8.5.1 PowerDesigner简介 306
8.5.2 PowerDesigner支持的模型 306
8.5.3 建立概念模型 307
8.5.4 建立物理模型 311
8.5.5 生成数据库 312
8.5.6 使用逆向工程生成物理模型 313
8.6 小结 316
第9章 SQL Server与CLR集成 318
9.1 了解.NET和CLR 318
9.1.1 .NET简介 318
9.1.2 C#简介 319
9.1.3 CLR集成概述 321
9.2 使用CLR集成的命名空间 322
9.3 SQL Server中的程序集 323
9.3.1 程序集简介 324
9.3.2 使用T-SQL添加程序集 324
9.3.3 使用SSMS添加程序集 326
9.3.4 修改程序集 327
9.3.5 删除程序集 328
9.4 创建CLR函数 329
9.4.1 使用C#编写CLR标量值函数 329
9.4.2 在SQL Server中使用CLR标量值函数 331
9.4.3 使用C#编写CLR表值函数 333
9.4.4 在SQL Server中使用CLR表值函数 334
9.5 创建CLR存储过程 335
9.5.1 使用C#编写CLR存储过程所需的函数 336
9.5.2 在SQL Server中使用CLR存储过程 337
9.5.3 创建有OUTPUT参数的CLR存储过程 338
9.6 创建CLR触发器 339
9.6.1 使用C#编写CLR触发器 339
9.6.2 在SQL Server中使用CLR触发器 341
9.7 创建用户定义聚合函数 342
9.7.1 使用C#编写聚合函数 342
9.7.2 在SQL Server中创建用户定义聚合函数 343
9.8 创建CLR用户定义类型 345
9.8.1 使用C#定义类型 345
9.8.2 在SQL Server中使用CLR用户定义类型 346
9.9 小结 347
第10章 在SQL Server中使用XML 349
10.1 XML概述 349
10.1.1 XML简介 349
10.1.2 XML数据的结构 350
10.1.3 XML文档模式 351
10.2 FOR XML子句的模式 353
10.2.1 RAW模式 353
10.2.2 AUTO模式 355
10.2.3 EXPLICIT模式 356
10.2.4 PATH模式 359
10.3 SQL Server 2008对XML的支持 359
10.3.1 对FOR XML子句的增强 359
10.3.2 OPENXML()函数 363
10.4 XML数据类型 364
10.4.1 XML数据类型简介 364
10.4.2 使用非类型化XML 365
10.4.3 管理XML架构集合 366
10.4.4 使用类型化XML 367
10.5 XML类型的方法 368
10.5.1 用query()方法查询XML 369
10.5.2 用exists()方法判断查询是否有结果 369
10.5.3 用value()方法返回查询的原子值 370
10.5.4 用modify()方法修改XML的内容 371
10.5.5 用nodes()方法实现XML数据到关系数据的转变 374
10.6 XML索引 375
10.6.1 XML索引简介 375
10.6.2 创建XML索引 377
10.6.3 修改与删除XML索引 379
10.7 使用XQuery 380
10.7.1 XQuery基础 380
10.7.2 FLWOR语句 387
10.7.3 XQuery条件表达式 390
10.7.4 XQuery运算符 391
10.7.5 XQuery函数 392
10.8 小结 392
第11章 使用ADO.NET 393
11.1 ADO.NET概述 393
11.1.1 ADO.NET发展历史 393
11.1.2 ADO.NET的结构 394
11.1.3 ADO.NET的优点 396
11.2 建立与管理连接 396
11.2.1 连接字符串 396
11.2.2 建立和断开连接 398
11.2.3 数据库连接池概述 399
11.2.4 创建连接池 400
11.2.5 添加连接 400
11.2.6 移除连接 400
11.2.7 配置连接池 401
11.3 使用SqlCommand执行数据操作 401
11.3.1 构造SqlCommand对象 402
11.3.2 SqlCommand提供的方法 403
11.4 使用SqlDataReader读取数据 404
11.4.1 使用SqlDataReader获得数据流 404
11.4.2 使用SqlDataReader获得对象 406
11.5 使用DataSet填充SqlDataAdapter 407
11.5.1 SqlDataAdapter的使用 407
11.5.2 DataSet的结构 408
11.5.3 DataSet中的集合——DataTable 408
11.5.4 DataSet中的数据行——DataRow 409
11.5.5 DataSet中的数据列——DataColumn 410
11.5.6 DataSet中的数据视图——DataView 411
11.6 事务处理 412
11.6.1 使用SqlTransaction处理事务 412
11.6.2 使用TransactionScope处理分布式事务 413
11.7 使用数据访问应用程序块 415
11.7.1 数据访问应用程序块简介 415
11.7.2 数据访问应用程序块的使用 417
11.8 使用LINQ操作数据库 418
11.8.1 LINQ基础 418
11.8.2 创建LINQ to SQL 420
11.8.3 使用LINQ进行多表查询 423
11.8.4 使用LINQ的其他查询 424
11.8.5 使用LINQ to SQL修改数据 426
11.8.6 使用LINQ to SQL的其他操作 427
11.9 小结 429
第12章 使用SMO编程管理数据库对象 430
12.1 SMO简介 430
12.2 SMO对象模型 431
12.2.1 SMO对象和URN简介 431
12.2.2 获得SMO对象属性 433
12.2.3 Server对象简介 434
12.2.4 Database对象简介 435
12.2.5 Table对象简介 436
12.2.6 其他对象简介 437
12.3 创建SMO应用程序 438
12.3.1 在VS中创建SMO项目 438
12.3.2 使用SMO管理数据库 439
12.3.3 使用SMO管理表 442
12.3.4 使用SMO管理存储过程 444
12.3.5 使用SMO生成脚本 446
12.4 小结 448
第13章 高级T-SQL语法 449
13.1 SQL Server 2005新增语法 449
13.1.1 排名函数 449
13.1.2 异常处理 453
13.1.3 APPLY操作符 455
13.1.4 PIVOT和UNPIVOT运算符 455
13.1.5 OUTPUT语法 457
13.1.6 公用表表达式CTE 460
13.1.7 TOP增强 462
13.1.8 TABLESAMPLE子句 463
13.2 SQL Server 2008新增语法 465
13.2.1 T-SQL基础增强 465
13.2.2 Grouping Sets语法 466
13.2.3 Merge语法 468
13.2.4 表值参数TVP 470
13.3 小结 472
第14章 Service Broker——异步应用程序平台 473
14.1 Service Broker简介 473
14.1.1 Service Broker是什么 473
14.1.2 Service Broker的作用 474
14.1.3 Service Broker的优点 476
14.2 会话对象 479
14.2.1 消息类型 479
14.2.2 管理消息类型 480
14.2.3 约定 482
14.2.4 管理约定 482
14.2.5 队列 483
14.2.6 管理队列 484
14.2.7 服务 486
14.2.8 管理服务 487
14.3 会话对话 488
14.3.1 对话过程 488
14.3.2 发起和结束会话 490
14.3.3 发送和接收消息 492
14.3.4 会话组 494
14.3.5 单个数据库的会话 496
14.4 Service Broker网络会话 498
14.4.1 Service Broker端点 498
14.4.2 路由 500
14.5 小结 501
第15章 空间数据类型 502
15.1 空间数据类型简介 502
15.1.1 空间数据类型概述 502
15.1.2 WKT简介 503
15.1.3 空间引用标识符 504
15.1.4 空间类 505
15.2 geometry几何数据类型 505
15.2.1 Point点的使用 506
15.2.2 MultiPoint点集的使用 507
15.2.3 LineString线的使用 508
15.2.4 MultiLineString线集的使用 510
15.2.5 Polygon面的使用 511
15.2.6 MultiPolygon面集的使用 513
15.2.7 GeometryCollection几何集合的使用 514
15.2.8 操作几何图形实例 515
15.2.9 几何图形实例的属性和方法 521
15.2.10 几何图形实例之间的关系 524
15.3 geography地理数据类型 528
15.3.1 创建地域实例 528
15.3.2 地域实例的属性和方法 531
15.3.3 地域实例之间的关系 533
15.4 空间索引 533
15.4.1 空间索引概述 533
15.4.2 使用T-SQL创建空间索引 538
15.4.3 使用SSMS创建空间索引 540
15.4.4 管理空间索引 542
15.5 小结 543
第16章 跨实例链接 544
16.1 链接服务器 544
16.1.1 链接服务器简介 544
16.1.2 使用T-SQL创建链接服务器 544
16.1.3 使用SSMS创建链接服务器 548
16.1.4 修改链接服务器属性 550
16.1.5 使用链接服务器 551
16.2 同义词 552
16.2.1 同义词简介 552
16.2.2 创建同义词 553
16.2.3 使用同义词 554
16.3 深入探讨跨实例链接 555
16.3.1 数据查询方式 555
16.3.2 链接服务器的安全 556
16.3.3 服务 556
16.3.4 索引服务 557
16.4 小结 558
第17章 数据库管理自动化 559
17.1 SQL Server代理 559
17.1.1 SQL Server代理简介 559
17.1.2 启用SQL Server代理 560
17.2 配置数据库作业 562
17.2.1 创建作业 562
17.2.2 创建作业步骤 564
17.2.3 创建计划 567
17.2.4 运行作业 571
17.2.5 监视作业 573
17.3 数据库邮件 574
17.3.1 数据库邮件简介 574
17.3.2 配置数据库邮件 576
17.3.3 如何使用数据库邮件 579
17.4 数据库警报 580
17.4.1 创建操作员 580
17.4.2 创建警报 581
17.4.3 为SQL Server代理配置数据库邮件 584
17.4.4 为作业设置通知 585
17.5 维护计划 586
17.5.1 维护计划向导 586
17.5.2 配置维护计划 590
17.5.3 维护计划管理 593
17.6 小结 593
第18章 商务智能 594
18.1 商务智能简介 594
18.2 集成服务 595
18.2.1 集成服务简介 595
18.2.2 使用导入导出向导转换数据 595
18.2.3 Excel数据的导入导出 599
18.2.4 数据查找 602
18.2.5 数据处理 604
18.2.6 异常处理 607
18.2.7 变量的使用 608
18.2.8 使用容器进行批量导入 609
18.3 分析服务 611
18.3.1 分析服务简介 611
18.3.2 创建数据源和数据源视图 613
18.3.3 创建多维数据集 614
18.3.4 部署分析服务 618
18.3.5 显示分析数据 619
18.4 报表服务 620
18.4.1 报表服务简介 621
18.4.2 报表设计 621
18.4.3 报表发布 623
18.4.4 报表展示 625
18.5 小结 626
第4篇 数据库性能优化
第19章 数据存储与索引 628
19.1 数据库对象分配 628
19.1.1 对象的存储 628
19.1.2 区-管理空间的基本单位 629
19.2 索引 630
19.2.1 索引简介 630
19.2.2 聚集索引 631
19.2.3 非聚集索引 633
19.2.4 堆 634
19.2.5 创建索引 635
19.2.6 管理索引 637
19.3 索引选项 639
19.3.1 填充因子 639
19.3.2 联机索引操作 640
19.3.3 其他高级选项 642
19.4 数据文件分区 643
19.4.1 分区概述 643
19.4.2 文件和文件组 644
19.4.3 分区函数 646
19.4.4 分区方案 648
19.4.5 分区表 649
19.4.6 分区索引 650
19.5 全文搜索 651
19.5.1 全文搜索概述 651
19.5.2 全文 652
19.5.3 全文索引 654
19.5.4 使用全文搜索 656
19.6 使用FILESTREAM存储文件 657
19.6.1 FILESTREAM概述 658
19.6.2 创建FILESTREAM 658
19.6.3 管理与使用FILESTREAM 660
19.7 小结 661
第20章 数据查询 662
20.1 执行计划 662
20.1.1 执行计划缓存 662
20.1.2 使用T-SQL查看执行计划 663
20.1.3 使用SSMS图形显示执行计划 664
20.1.4 重新编译执行计划 665
20.2 联接 668
20.2.1 嵌套循环联接 668
20.2.2 合并联接 669
20.2.3 哈希联接 670
20.3 SARG查询参数 671
20.3.1 SARG简介 671
20.3.2 在查询中使用SARG 671
20.4 统计信息 673
20.4.1 统计信息简介 673
20.4.2 使用T-SQL创建统计信息 674
20.4.3 使用T-SQL管理统计信息 675
20.4.4 使用SSMS创建和管理统计信息 676
20.5 小结 677
第21章 事务处理 678
21.1 事务 678
21.1.1 事务概述 678
21.1.2 使用事务 679
21.1.3 嵌套事务 681
21.1.4 事务保存点 681
21.2 锁 682
21.2.1 锁的模式 682
21.2.2 锁的兼容性 684
21.2.3 锁的资源和粒度 685
21.3 事务隔离级别 686
21.3.1 并发产生的影响 686
21.3.2 隔离级别概述 687
21.3.3 使用T-SQL设置隔离级别 688
21.3.4 隔离级别详情 689
21.4 死锁 694
21.4.1 死锁简介 694
21.4.2 多表死锁 695
21.4.3 高隔离级别造成单表死锁 696
21.4.4 索引建立不当造成单表死锁 696
21.4.5 死锁监视与预防 698
21.5 小结 699
第22章 数据库系统调优工具 700
22.1 数据库报表 700
22.1.1 查看数据库实例报表 700
22.1.2 查看单个数据库报表 701
22.2 使用SQL Server Profiler跟踪数据库 701
22.2.1 创建SQL Server Profiler 702
22.2.2 查询SQL Server Profiler 703
22.3 性能监视器 704
22.3.1 性能监视器简介 704
22.3.2 常用的计数器 705
22.3.3 计数器日志 707
22.4 使用优化顾问优化SQL语句 708
22.4.1 优化顾问简介 708
22.4.2 使用优化顾问优化SQL语句 709
22.5 动态管理视图和函数 710
22.5.1 动态管理视图和函数简介 711
22.5.2 动态管理视图和函数的使用 711
22.6 小结 713
??
??
??
??
SQL Server数据库技术大全
·XXII·
·XXI·