第1部分 基础篇 1
第1章 认识数据库 2
1.1数据库的类型 2
1.1.1结构型数据库 2
1.1.2网络型数据库 2
1.1.3关系型数据库 2
1.1.4面向对象型数据库 3
1.2数据库的基本概念 3
1.2.1数据 3
1.2.2数据库 3
1.2.3数据库管理系统 3
1.2.4数据库系统 3
1.3常见的数据库对象 3
1.3.1表与记录 4
1.3.2主键与外键 4
1.3.3索引 4
1.3.4约束 5
1.3.5视图 5
1.3.6关系图 5
1.3.7默认值 5
1.3.8规则 5
1.3.9存储过程 6
1.3.10触发器 6
1.3.11用户和角色 6
1.4数据库管理系统的基本功能 6
1.4.1定义数据 6
1.4.2处理数据 6
1.4.3保证数据安全 6
1.4.4备份和恢复数据 6
1.5 SQL语言简介 6
1.5.1 SQL语言的历史 7
1.5.2 SQL语言的优点 7
1.5.3 SQL语言分类 7
1.6数据库系统的用户 8
1.7小结 8
第2章 SQL Server 2008简介及安装 9
2.1 SQL Server 2008简介 9
2.1.1 SQL Server 2008数据平台 9
2.1.2使用SQL Server 2008能获得的好处 10
2.2 SQL Server 2008新特性 10
2.3 SQL Server 2008新功能 11
2.3.1可信任性 11
2.3.2开发和管理生产效率 12
2.3.3商业智能 13
2.4 SQL Server 2008各版本比较 15
2.4.1可扩展性 15
2.4.2高可用性 15
2.4.3安全性 16
2.4.4复制 16
2.4.5可管理性 16
2.4.6管理工具 16
2.4.7开发工具 17
2.4.8可编程性 17
2.4.9空 间和位置服务 17
2.4.10 Integration Services 18
2.4.11数据仓库创建 18
2.4.12数据仓库规模和性能 18
2.4.13多维分析 19
2.4.14数据挖掘 19
2.4.15报表 19
2.5安装SQL Server 2008的系统要求 20
2.5.1 CPU与内存要求 20
2.5.2硬盘空间要求 20
2.5.3操作系统要求 20
2.5.4其他要求 22
2.6安装SQL Server 2008 23
2.7升级到SQL Server 2008 33
2.7.1升级之前要考虑的问题 33
2.7.2升级注意事项 34
2.7.3使用SQL Server 2008升级顾问 35
2.7.4升级到SQL Server 2008 38
2.8 小结 40
第2部分 准备篇 41
第3章 初识SQL Server 2008 42
3.1服务器上的后台服务 42
3.1.1 SQL Server服务 43
3.1.2 SQL Server Active Directory Helper服务 43
3.1.3 SQL Server Agent服务 43
3.1.4 SQL Server Analysis Services服务 43
3.1.5 SQL Server Browser服务 44
3.1.6 SQL Server FullText Search服务 44
3.1.7 SQL Server Integration Services服务 44
3.1.8 SQL Server Reporting Services服务 44
3.1.9 SQL Server VSS Writer服务 45
3.2客户端上的管理工具 45
3.2.1 SQL Server Management Studio 45
3.2.2 Reporting Services配置 45
3.2.3 SQL Server Configuration Manager 47
3.2.4 SQL Server错误和使用情况报告 48
3.2.5 SQL Server Profiler 49
3.2.6数据库引擎优化顾问 50
3.2.7 Visual Studio 2008 52
3.2.8 SQL Server Business Intelligence Development Studio 52
3.3 SQL Server Management Studio 52
3.3.1认识SQL Server Management Studio的界面 53
3.3.2更改SQL Server Management Studio的界面布局 53
3.3.3使用查询编辑器 53
3.3.4利用编辑器自动生成查询语句 54
3.3.5脱机编写SQL语句后连接到服务器 55
3.3.6全屏显示查询编辑器 55
3.3.7使用模板编写SQL语句 56
3.3.8创建自定义模板 57
3.3.9使用项目脚本和解决方案 58
3.4示例数据库 59
3.4.1 SQL Server 2008示例数据库 59
3.4.2本书示例数据库 61
3.5小结 61
第3部分 基础操作篇 63
第4章 数据库服务器管理 64
4.1数据库服务器的工作模式 64
4.1.1 C/S模式 64
4.1.2B/S模式 65
4.2连接与断开数据库服务器 65
4.2.1用SQL Server Management Studio连接服务器 65
4.2.2在已注册的服务器里添加服务器组与服务器 68
4.2.3使用对象资源管理器连接服务器 72
4.2.4通过服务器注册连接到服务器 73
4.2.5断开与数据库服务器的连接 73
4.3使用配置管理器配置SQL Server服务 74
4.3.1启动/停止/暂停/重新启动服务 74
4.3.2配置服务的启动模式 76
4.3.3更改登录身份 77
4.3.4 SQL Server 2008使用的网络协议 78
4.3.5为SQL Server 2008配置共享内存协议 79
4.3.6为SQL Server 2008配置管道协议 80
4.3.7为SQL Server 2008配置TCP/IP协议 84
4.3.8配置客户端网络协议的使用顺序 86
4.3.9 隐藏实例 87
4.4配置远程SQL Server服务 88
4.4.1配置远程SQL Server服务的权限 89
4.4.2用SQL Server Management Studio停止和启动远程SQL Server服务 89
4.4.3通过已注册的服务器启动远程SQL Server服务 91
4.4.4使用SQL Server配置管理器远程管理SQL Server服务 91
4.5配置SQL Server 2008服务器 92
4.5.1服务器属性的常规设置 92
4.5.2服务器属性的内存设置 93
4.5.3服务器属性的处理器设置 94
4.5.4服务器属性的安全性设置 96
4.5.5服务器属性的连接设置 97
4.5.6服务器属性的数据库设置 98
4.5.7服务器属性的高级选项设置 99
4.5.8服务器属性的权限设置 100
4.6通过日志查看服务器的运行情况 101
4.6.1在事件查看器中查看服务器的运行情况 101
4.6.2通过日志查看器查看SQL Server日志 102
4.6.3在LOG文件夹中查看SQL Server错误日志 103
4.7小结 104
第5章 数据库管理 105
5.1创建数据库前的准备 105
5.1.1数据库命名规则 105
5.1.2创建数据库需要的权限 106
5.1.3数据库的所有者 106
5.1.4数据库的上限 106
5.1.5数据库文件和文件组 106
5.1.6记录数据库操作的事务日志 106
5.1.7数据库状态 107
5.2在SQL Server Management Studio中创建数据库 107
5.3 使用Create database语句创建数据库 113
5.3.1基本语法 113
5.3.2 T-SQL中的语法约定 114
5.3.3参数讲解 115
5.3.4 Create Database语句需要注意的功能 116
5.3.5举例说明 116
5.3.6使用模板 119
5.4修改数据库设置 122
5.4.1使用SQL Server Management Studio修改数据库设置 122
5.4.2查看数据库的基本信息 123
5.4.3增加、删除与修改数据库文件 123
5.4.4修改数据库的所有者 124
5.4.5设置全文索引 125
5.4.6增加、删除与修改文件组 126
5.4.7修改数据库的排序规则 127
5.4.8修改数据库的兼容性 128
5.4.9限制用户的访问 128
5.4.10设置用户及角色对数据库的使用权限 128
5.4.11修改数据库名称 130
5.5使用Alter database语句修改数据库 131
5.5.1基本语法 131
5.5.2参数说明 131
5.5.3 Alter database语句的注意事项 134
5.5.4典型案例 134
5.6 分离与附加数据库 136
5.6.1分离数据库 136
5.6.2附加数据库 139
5.7脱机和联机数据库 143
5.7.1脱机数据库 143
5.7.2联机数据库 144
5.8删除数据库 145
5.8.1在SQL Server Management Studio中删除数据库 145
5.8.2用Drop database语句删除数据库 146
5.9收缩数据库 146
5.9.1自动收缩数据库 147
5.9.2手动收缩数据库 147
5.9.3手动收缩数据库文件 149
5.10编写数据库脚本 151
5.11小结 153
第6章 数据表管理 154
6.1数据表简介 154
6.1.1数据表的分类 155
6.1.2认识列 155
6.2数据类型 155
6.2.1精确数字型 156
6.2.2近似数字型 157
6.2.3日期和时间型 157
6.2.4字符串型 157
6.2.5 Unicode字符串型 158
6.2.6二进制字符串型 158
6.2.7其他数据类型 159
6.2.8用户自定义型 159
6.3在SQL Server Management Studio中创建表 160
6.3.1定义数据表的字段和主键 160
6.3.2设置默认值 162
6.3.3设置标识列 162
6.3.4建立表与表之间的关系 163
6.3.5 创建索引 166
6.3.6创建约束 167
6.3.7设置数据表所在文件组 169
6.4用T-SQL语言创建表 170
6.4.1基本语法 170
6.4.2参数说明 170
6.4.3创建新表 175
6.4.4创建标识字段 176
6.4.5创建带标识种子和标识增量的标识字段 176
6.4.6创建非Null字段 176
6.4.7字段的默认值 177
6.4.8将创建的表放在文件组中 177
6.4.9使用Check约束 177
6.4.10设置字段的排序规则 178
6.4.11创建外键 178
6.4.12设置外键的更新规则和删除规则 178
6.4.13创建Unique约束 179
6.4.14创建计算列 179
6.4.15设置数据表的约束 180
6.4.16 Create Table语句的注意事项 180
6.5在SQL Server Management Studio中修改表 180
6.5.1修改数据表名 180
6.5.2插入、移动和删除数据表的字段 181
6.5.3修改字段数据类型 182
6.5.4修改主键、外键、索引和约束 182
6.5.5修改数据表属性 182
6.6用T -SQL语言修改数据表结构 184
6.6.1基本语法 184
6.6.2参数说明 184
6.6.3 修改字段属性 189
6.6.4添加字段 189
6.6.5添加字段并设置字段属性 189
6.6.6删除字段 189
6.6.7添加约束 189
6.6.8禁用约束 190
6.6.9启用约束 190
6.6.10删除约束 190
6.6.11设置主键 190
6.6.12修改字段名和数据表名 191
6.6.13 Create Table语句的注意事项 191
6.7在SQL Server Management Studio中删除表 191
6.8用Drop Table删除数据表 194
6.9编写表脚本 194
6.10数据库关系图的使用 195
6.10.1创建数据库关系图并添加数据表 195
6.10.2添加相关联的数据表 197
6.10.3更改数据表的显示模式 197
6.10.4在关系图中删除数据表 198
6.10.5 建立和删除表与表之间的关联 198
6.10.6保存部分修改过的数据表 199
6.10.7在关系图中创建数据表 200
6.10.8在关系图中修改字段属性 201
6.10.9 在关系图中设置或修改表的外键与约束 201
6.11临时表简介 202
6.12已分区表简介 203
6.13小结 203
第7章 数据(记录)操作 204
7.1在SQL Server Management Studio中查看记录 204
7.1.1选择前1000行 204
7.1.2返回前几条记录 204
7.2在SQL Server Management Studio中插入记录 205
7.3用Insert语句插入记录 207
7.3.1基本语法 207
7.3.2参数说明 207
7.3.3简单的插入语句 208
7.3.4按表中不同字段顺序插入记录 208
7.3.5插入值少于字段数的记录 209
7.3.6在标识列字段里插入字段内容 209
7.3.7从数据表中查询记录并插入到另一个表中 209
7.3.8从数据表中查询部分字段记录并插入到另一个表中 210
7.3.9从数据表中查询记录插入其他表并为字段添加固定内容 210
7.3.10在Insert语句里使用exec子句 211
7.3.11在数据中只插入默认值 211
7.4插入记录的注意事项 211
7.5用Update语句更新记录 212
7.5.1基本语法 212
7.5.2参数说明 213
7.5.3简单的更新语句 214
7.5.4使用计算值更新记录 214
7.5.5引用其他表里的字段值更新记录 214
7.5.6使用top子句更新记录 215
7.6在SQL Server Management Studio中删除记录 215
7.7用Delete语句删除记录 215
7.7.1基本语法 215
7.7.2参数说明 216
7.7.3简单的删除语句 217
7.7.4删除多条记录 217
7.7.5引用其他表里的字段值来删除记录 217
7.8用Truncate Table语句删除记录 217
7.9用Select语句进行查询 218
7.10用Select子句设定查询内容 218
7.10.1基本语法 218
7.10.2参数说明 219
7.10.3查询表中所有列 219
7.10.4查询表中某几列 220
7.10.5为查询添加计算列 220
7.10.6查看最前记录 221
7.10.7查看不重复记录 222
7.10.8查询表中的标识列或GUID列 223
7.11用From子句指定查询哪些表 223
7.11.1基本语法 223
7.11.2参数说明 224
7.11.3简单的From子句 225
7.11.4从两个表中联合查询记录 225
7.11.5从多个表中联合查询记录 227
7.11.6 JOIN的其他类型 227
7.11.7使用表别名 229
7.11.8表JOIN自身 230
7.12用Where子句设定查询条件 230
7.12.1基本语法 230
7.12.2参数说明 231
7.12.3单个查询条件 232
7.12.4设置多个查询条件 232
7.12.5在查询条件里使用函数 233
7.12.6 查询两个条件之间的记录 233
7.12.7查询字段内容为NULL的记录 234
7.12.8将结果集作为查询条件 234
7.12.9模糊查询 235
7.12.10在模糊查询中查询含有通配符的文本 236
7.12.11使用EXISTS关键字 237
7.12.12使用ALL, ANY和SOME关键字 237
7.13使用Order by子句排序 238
7.13.1基本语法 238
7.13.2参数说明 239
7.13.3按一个字段排序 239
7.13.4按多个字段排序 239
7.14使用Group by子句分组 239
7.14.1基本语法 240
7.14.2参数说明 240
7.14.3 Group by的基本用法 240
7.14.4在Group by中使用表达式 241
7.14.5使用with cube对所有字段进行汇总 241
7.14.6使用with rollup对第一个字段进行汇总 242
7.14.7使用Group by all对所有数据分组 243
7.15使用Having子句在分组中设置查询条件 243
7.15.1基本语法 244
7.15.2使用Having对分组设置查询条件 244
7.16使用Compute子句归类 244
7.16.1基本语法 245
7.16.2参数说明 245
7.16.3使用Compute归类 245
7.16.4使用Compute by归类 246
7.17使用UNION子句合并多个查询结果 246
7.17.1基本语法 247
7.17.2参数说明 247
7.17.3使用UNION ALL合并两个查询结果集 248
7.17.4使用UNION合并两个查询结果集 248
7.17.5使用UNION加入临时数据 248
7.17.6在UNION的结果集里排序 248
7.17.7在UNION的结果集里分组 249
7.18使用Select into子句为查询结果建立新表 249
7.18.1基本语法 249
7.18.2使用Select into创建一个新表 249
7.18.3在Select into中设置复杂的查询条件 250
7.18.4使用Select into复制表结构 250
7.19在不同数据库中查询记录 251
7.20 NULL字段的处理方法 251
7.20.1使用NULL时要注意的事项 251
7.20.2检查字段内容是否为NULL 252
7.20.3使用ISNULL函数替换NULL值 252
7.21 SQL Server 2008语句新增功能 253
7.21.1 Select语句新增功能 253
7.21.2 Insert语句新增功能 253
7.21.3 Update语句新增功能 254
7.21.4 Delete语句新增功能 255
7.22小结 255
第4部分 数据库管理篇 257
第8章 T-SQL程序 258
8.1 T-SQL概述 258
8.1.1什么是T-SQL 258
8.1.2 T-SQL的语法约定 258
8.2数据库对象的引用方法 259
8.2.1引用数据库对象的方法 259
8.2.2架构 260
8.2.3创建自定义架构 261
8.3 T-SQL中的批处理 262
8.3.1一次执行多个T-SQL语句 262
8.3.2使用GO语句分隔多个批 262
8.4 T-SQL中的注释 263
8.4.1--注释 263
8.4.2/*…*/注释 263
8.5 T-SQL数据类型及转换 264
8.5.1使用CAST转换数据类型 264
8.5.2使用CONVERT转换数据类型 265
8.5.3隐式数据类型转换 266
8.5.4数据类型转换时的注意事项 267
8.6 T-SQL运算符 267
8.6.1算术运算符 267
8.6.2赋值运算符 268
8.6.3位运算符 268
8.6.4比较运算符 268
8.6.5逻辑运算符 268
8.6.6字符串串联运算符 269
8.6.7一元运算符 269
8.7运算符的优先级 269
8.8 T-SQL中的常量 270
8.8.1字符串常量 270
8.8.2 Unicode常量 270
8.8.3二进制常量 270
8.8.4 bit常量 271
8.8.5 datetime常量 271
8.8.6 integer常量 271
8.8.7 decimal常量 271
8.8.8 float和 real常量 271
8.8.9 money常量 271
8.8.10 uniqueidentifier常量 272
8.8.11在T-SQL中使用常量 272
8.9 T-SQL中的变量 272
8.91局部变量 273
8.9.2全局变量 275
8.10 T-SQL的流程控制 277
8.10.1 Begin …End语句 277
8.10.2 If…Else语句 278
8.10.3 While语句 279
8.10.4 Case语句 280
8.10.5 Goto语句 282
8.10.6 Waitfor语句 283
8.10.7 Return语句 284
8.10.8 Try…Catch语句 284
8.10.9 Execute语句 285
8.11 T-SQL的常用函数 287
8.11.1聚合函数 287
8.11.2日期和时间函数 288
8.11.3数学函数 288
8.11.4字符串函数 289
8.11.5文本和图像函数 289
8.11.6配置函数 289
8.11.7游标函数 290
8.11.8元数据函数 290
8.11.9行集函数 291
8.11.10安全函数 291
8.11.11系统统计函数 291
8.11.12其他函数 292
8.12不应使用的关键字 293
8.13小结 295
第9章 视图 296
9.1视图简介 296
9.2创建视图 297
9.2.1在SQL Server Management Studio中创建视图 298
9.2.2使用Create view语句创建视图 299
9.3查看与修改视图 302
9.3.1查看视图 302
9.3.2在SQL Server Management Studio中修改视图 303
9.3.3使用Alter view语句修改视图 303
9.4加密视图 304
9.5限制视图所用的表或视图不能更改设计和删除 305
9.6检查视图的数据变动 307
9.7编辑视图中的记录 307
9.7.1编辑视图中的记录的限制 307
9.7.2在SQL Server Management Studio中操作视图记录 308
9.7.3使用Insert, Update和Delete语句操作视图记录 308
9.8删除视图 309
9.8.1在Management Studio中删除视图 309
9.8.2使用Drop view语句删除视图 309
9.9为视图重命名 309
9.10小结 310
第10章 存储过程 311
10.1存储过程简介 311
10.1.1存储过程的概念 311
10.1.2使用存储过程的优点 311
10.1.3存储过程的分类 312
10.2创建存储过程 312
10.2.1使用Create procedure语句创建存储过程 312
10.2.2在SQL Server Management Studio中建立存储过程 314
10.3修改存储过程 316
10.3.1使用Alter procedure语句修改存储过程 316
10.3.2在SQL Server Management Studio中修改存储过程 316
10.3.3修改存储过程名 317
10.4执行存储过程 318
10.5 设计存储过程的高级技巧 320
10.5.1设计存储过程时的注意事项 320
10.5.2参数传递的方式 321
10.5.3存储过程的返回值 322
10.5.4不显示影响行数的通知 324
10.5.5临时存储过程 325
10.5.6嵌套调用存储过程 325
10.5.7查看存储过程的依赖关系 326
10.5.8加密存储过程 327
10.5.9查看存储过程的源代码 327
10.5.10设计存储过程组 328
10.6删除存储过程 329
10.6.1使用Drop procedure语句删除存储过程 329
10.6.2在SQL Server Management Studio中删除存储过程 329
10.7常用的系统存储过程 330
10.7.1 sp_ help:查看对象信息 330
10.7.2 sp_ helpdb:查看数据库信息 330
10.7.3 sp_ helpfile:查看数据库文件信息 331
10.7.4 sp_ helpfilegroup:查看文件组信息 331
10.7.5 sp_ helpindex:查看索引信息 331
10.7.6 sp_ helpsort:查看排序及字符集信息 331
10.7.7 sp _helpstats:查看列和索引的统计信息 331
10.7.8 sp_ helptext:查看对象内容 332
10.7.9 sp_ helptrigger:查看触发器信息 332
10.7.10 sp_ lock:查看锁信息 332
10.7.11 sp_ monitor:查看系统统计信息 332
10.7.12 sp_ rename:修改对象名 332
10.7.13 sp_ renamedb:修改数据库名 332
10.7.14 sp_ who:查看用户和进程信息 333
10.7.15 sp_ columns:查看列信息 333
10.7.16 sp_ databases:查看数据库信息 333
10.7.17 sp_fkeys:查看外键信息 333
10.7.18 sp_pkeys:查看主键信息 334
10.7.19 sp_ server_ info:查看SQL Server信息 334
10.7.20 sp _tables:查看表或视图信息 334
10.7.21 sp _stored_procedures:查看存储过程信息 334
10.8 CLR存储过程 335
10.8.1创建CLR存储过程的步骤 335
10.8.2开启CLR支持 335
10.8.3编写CLR存储过程内容 335
10.8.4将CLR存储过程编译成DLL文件 337
10.8.5注册程序集 337
10.8.6创建引用程序集的存储过程 338
10.8.7执行CLR存储过程 339
10.9小结 339
第11章 触发器 340
11.1触发器简介 340
11.1.1触发器的概念和作用 340
11.1.2触发器的种类 341
11.2 DML触发器的分类 341
11.3 DML触发器的工作原理 341
11.3.1 After触发器的工作原理 342
11.3.2 Instead Of触发器的工作原理 342
11.4设计DML触发器的注意事项及技巧 342
11.4.1设计触发器的限制 342
11.4.2如何用触发器取得字段修改前和修改后的数据 343
11.4.3使用DML触发器的注意事项 343
11.5设计After触发器 344
11.5.1设计简单的After触发器 344
11.5.2测试触发器功能 346
11.5.3建立触发器的SQL语句 347
11.6设置After触发器的激活顺序 350
11.7触发器的嵌套 352
11.8触发器的递归 354
11.9设计Instead Of触发器 355
11.9.1 Instead Of触发器的使用范围 355
11.9.2设计简单的Instead Of触发器 355
11.10查看DML触发器 356
11.10.1在SQL Server Management Studio中查看触发器 356
11.10.2使用系统存储过程查看触发器 357
11.11修改DML触发器 359
11.12删除DML触发器 359
11.13禁用与启用DML触发器 359
11.14 DDL触发器 360
11.15设计DDL触发器 360
11.15.1建立DDL触发器的语句 360
11.15.2测试触发器功能 363
11.16查看与修改DDL触发器 365
11.17触发器的应用技巧 366
11.17.1如何知道触发器修改了多少条记录 366
11.17.2如何知道插入记录的自动编号是多少 367
11.17.3如何知道某个字段是否被修改 367
11.17.4如何返回错误信息 368
11.18小结 370
第12章 索引 371
12.1索引简介 371
12.2索引的结构 371
12.3索引的分类 372
12.3.1聚集索引与非聚集索引 372
12.3.2唯一索引 372
12.3.3复合索引与包含性列索引 373
12.3.4视图索引 373
12.3.5全文索引 373
12.3.6 XML索引 373
12.4系统自动建立的索引 374
12.4.1主键字段 374
12.4.2 Unique字段 374
12.5建立索引的注意事项 375
12.6在SQL Server Management Studio中创建索引 375
12.7使用Create index语句创建索引 379
12.7.1基本语法 379
12.7.2参数说明 380
12.7.3创建简单的索引 380
12.7.4创建简单的复合索引 381
12.7.5创建唯一索引 381
12.7.6创建聚集索引 381
12.7.7创建降序的非聚集索引 381
12.7.8创建包含性列索引 381
12.7.9创建索引并指定其所在的文件组 382
12.7.10创建索引并设置填充因子 382
12.7.11创建索引并设置填充索引 382
12.7.12创建复杂的索引 383
12.8查看与修改索引 383
12.8.1在SQL Server Management Studio中查看与修改索引 383
12.8.2使用sp_helpindex查看索引 385
12.8.3使用sys.indexes视图查看索引信息 385
12.8.4使用Alter index语句修改索引 386
12.9重新生成和重新组织索引 387
12.9.1在SQL Server Management Studio中重新生成索引 388
12.9.2在SQL Server Management Studio中重新组织索引 388
12.9.3使用REBUILD参数重新生成索引 389
12.9.4使用REORGANIZE参数重新组织索引 390
12.9.5使用SQL Server Management Studio查看索引碎片 390
12.9.6使用函数sys.dm_db_ index_ physical_stats查看索引碎片 391
12.10禁用索引 392
12.10.1在SQL Server Management Studio中禁用索引 392
12.10.2使用DISABLE参数禁用索引 392
12.11重命名索引 393
12.12删除索引 394
12.12.1删除索引的注意事项 394
12.12.2在SQL Server Management Studio中删除索引 394
12.12.3使用Drop index语句删除索引 394
12.13索引视图 394
12.13.1索引视图简介 395
12.13.2创建索引视图 395
12.14小结 395
第13章 用户定义数据类型和函数 396
13.1用户定义数据类型 396
13.1.1创建用户定义数据类型 396
13.1.2使用用户定义数据类型 398
13.1.3删除用户定义数据类型 399
13.2用户定义函数 400
13.2.1用户定义函数与存储过程的比较 401
13.2.2用户定义函数类型 401
13.2.3创建标量值函数 401
13.2.4创建内联表值函数 403
13.2.5创建多语句表值函数 404
13.2.6在SQL Server Management Studio里创建用户定义函数 406
13.2.7查看与修改用户定义函数 407
13.2.8使用用户定义函数 408
13.2.9删除用户定义函数 409
13.3小结 410
第14章 全文索引 411
14.1全文索引简介 411
14.2全文索引常用术语 411
14.3全文索引的体系结构 412
14.4全文目录管理 413
14.4.1创建全文目录 413
14.4.2查看与修改全文目录 414
14.4.3删除全文目录 415
14.5 全文索引管理 415
14.5.1创建全文索引的注意事项 415
14.5.2创建全文索引 416
14.5.3查看与修改全文索引 419
14.5.4启用和禁用全文索引 420
14.5.5删除全文索引 420
14.6填充全文索引 420
14.6.1填充全文索引的方式 421
14.6.2填充全文索引 421
14.6.3定时填充全文索引 422
14.7使用全文搜索查询数据 424
14.7.1使用CONTAINS搜索 424
14.7.2使用FREETEXT搜索 428
14.7.3使用CONTAINSTABLE搜索 429
14.7.4使用FREETEXTTABLE搜索 432
14.7.5搜索image字段 432
14.8与全文索引相关的T-SQL语句 433
14.8.1创建全文目录 433
14.8.2更改全文目录属性 433
14.8.3创建全文索引 434
14.8.4更改全文索引属性 435
14.8.5删除全文索引 436
14.8.6删除全文目录 436
14.9小结 436
第15章 游标 438
15.1游标简介 438
15.2游标的基本操作 439
15.2.1定义游标 439
15.2.2打开游标 440
15.2.3读取游标 441
15.2.4关闭和删除游标 441
15.3游标的运用 442
15.3.1用游标处理数据 442
15.3.2全局游标与本地游标 445
15.3.3游标的嵌套 446
15.3.4使用游标变量 447
15.3.5在存储过程中使用游标参数 451
15.4在游标中常用的变量、函数和存储过程 452
15.4.1使用系统全局变量查看游标信息 452
15.4.2使用函数查看游标状态 453
15.4.3使用系统存储过程查看游标属性 454
15.5小结 458
第16章 事务与锁 460
16.1事务简介 460
16.1.1事务的特性 460
16.1.2事务的工作流程 461
16.1.3执行事务的注意事项 462
16.1.4事务的工作原理 462
16.1.5事务执行的模式 463
16.2编写事务 463
16.2.1编写事务的原则 464
16.2.2编写事务 464
16.3嵌套事务 466
16.3.1使用嵌套事务的注意事项 466
16.3.2嵌套事务示例 467
16.3.3获取嵌套的层次 469
16.4事务保存点 471
16.5事务的隔离级别 473
16.6锁简介 473
16.7锁的对象和模式 474
16.8 死锁 475
16.9小结 476
第17章 其他数据对象 477
17.1统计信息 477
17.1.1统计信息简介 477
17.1.2查看统计信息 478
17.1.3创建统计信息 481
17.1.4更新统计信息 482
17.1.5删除统计信息 483
17.2同义词 484
17.2.1同义词简介 484
17.2.2创建同义词 484
17.2.3使用同义词与链接服务器 486
17.2.4查看同义词的信息与删除同义词 488
17.3 小结 489
第5部分 SQL Server高级技术篇 491
第18章 数据库备份与恢复 492
18.1备份与恢复介绍 492
18.1.1备份类型 492
18.1.2恢复模式 493
18.1.3如何备份数据库 494
18.1.4数据库备份到哪里 495
18.2在SQL Server Management Studio中备份数据库 496
18.3使用T-SQL语言备份数据库 499
18.3.1完整备份与差异备份 499
18.3.2备份文件和文件组 502
18.3.3事务日志备份 503
18.4备份设备管理 504
18.4.1查看备份设备的内容 504
18.4.2通过备份设备来备份数据库 505
18.4.3验证备份的内容 506
18.4.4删除备份设备 507
18.5在SQL Server Management Studio中还原数据库 507
18.5.1还原数据库的方式 508
18.5.2还原数据库前要注意的事项 508
18.5.3还原数据库备份 508
18.5.4还原文件和文件组备份 510
18.5.5使用现有的备份创建新的数据库 511
18.6用T -SQL语言还原数据库 512
18.6.1还原完整备份 512
18.6.2还原差异备份 514
18.6.3 还原事务日志备份 515
18.6.4还原文件和文件组备份 515
18.6.5将数据库还原到某个时间点 516
18.6.6将文件还原到新位置上 516
18.7建立自动备份的维护计划 517
18.8 小结 519
第19章 系统数据库与用户数据库 520
19.1 SQL Server 2008系统数据库介绍 520
19.1.1 master系统数据库 520
19.1.2 tempdb临时数据库 520
19.1.3 model模板数据库 521
19.1.4 msdb系统数据库 521
19.1.5 resource系统数据库 522
19.2系统表与视图介绍 522
19.2.1 msdb数据库里的表 523
19.2.2系统视图 525
19.2.3系统函数 526
19.3规划数据库 526
19.3.1数据库文件 526
19.3.2文件组 527
19.3.3计算数据库文件的大小 528
19.4小结 529
第20章 SQL Server 2008的安全 530
20.1 SQL Server 2008的身份验证模式 530
20.2访问权限 532
20.3用户 532
20.3.1添加用户 532
20.3.2使用用户登录 533
20.3.3为用户设置权限 534
20.4角色 538
20.4.1角色简介 538
20.4.2服务器角色 538
20.4.3将用户设为服务器角色成员 539
20.4.4数据库角色 539
20.4.5将用户设为数据库角色成员 540
20.4.6创建用户自定义数据库角色 541
20.4.7应用程序角色 541
20.4.8创建应用程序角色 541
20.4.9使用应用程序角色 542
20.5架构 543
20.6确保数据库服务器的安全 544
20.7小结 546
第21章 复制与发布 547
21.1复制简介 547
21.1.1什么是复制 547
21.1.2复制的类型 548
21.1.3复制代理 549
21.2发布服务器与发布 550
21.2.1复制的步骤 550
21.2.2创建发布服务器与发布 550
21.2.3修改发布属性 554
21.2.4删除发布 557
21.3订阅服务器与订阅 557
21.3.1创建订阅服务器与订阅 557
21.3.2修改订阅属性 560
21.3.3删除订阅 560
21.4复制监视器 561
21.4.1启动复制监视器 561
21.4.2添加其他发布服务器 562
21.4.3查看发布服务器的信息 563
21.5小结 564
第22章 SQL Server的自动化管理 565
22.1 SQL Server代理 565
22.1.1 SQL Server代理简介 565
22.1.2启动和停止SQL Server代理 566
22.1.3 SQL Server代理的设置 566
22.1.4指定SQL Server代理的登录账户 569
22.2操作员 570
22.3作业 571
22.3.1新建作业 571
22.3.2手动执行作业 574
22.3.3调度作业 574
22.3.4查看历史记录 575
22.3.5删除、禁用与启用作业 576
22.4警报与通知 576
22.4.1新建警报 576
22.4.2修改警报 579
22.4.3启动、禁用与删除警报 579
22.4.4通知 579
22.5维护计划 580
22.6错误日志 582
22.7小结 583
第23章 SQL Server的性能工具 584
23.1 SQL Server Profiler 584
23.1.1 SQL Server Profiler简介 584
23.1.2新建跟踪 585
23.1.3存储事件记录 586
23.1.4载入事件记录 586
23.1.5新建跟踪模板 586
23.1.6值得注意的功能 587
23.2数据库引擎优化顾问 588
23.2.1数据库引擎优化顾问介绍 588
23.2.2使用数据库引擎优化顾问 588
23.3小结 589
第24章 SQL Server邮件 590
24.1 SQL Mail 590
24.1.1配置SQL Mail 590
24.1.2使用SQL Mail发送电子邮件 593
24.2数据库邮件 594
24.2.1配置数据库邮件 594
24.2.2发送测试邮件 597
24.2.3配置SQL Server代理以使用数据库邮件 598
24.3小结 599
第25章 数据导入与导出 601
25.1 SQL Server导入导出向导 601
25.2数据导入导出 601
25.3数据导入导出时的数据类型转换 604
25.4在不同数据源与目标之间传输数据 604
25.5小结 606
第26章 Analysis Services 607
26.1 Analysis Services简介 607
26.1.1数据仓库 607
26.1.2数据仓库的结构 608
26.1.3创建数据仓库的步骤 609
26.1.4联机分析处理(OLAP) 609
26.1.5数据挖掘 610
26.2定义数据源 610
26.3定义数据源视图 612
26.4定义多维数据集 614
26.5部署Analysis Services项目 618
26.6查看多维数据集 619
26.7使用客户端软件查看多维数据 620
26.8小结 623
第27章 Reporting Services 624
27.1创建报表服务器项目 624
27.2创建数据源 625
27.3创建报表 626
27.4发布报表 628
27.5自定义报表信息 629
27.6小结 632
第28章 SQL Server与XML 634
28.1 XML简介 634
28.1.1什么是XML 634
28.1.2使用XML的好处 635
28.1.3 XML的语法 636
28.2 SQL Server中的XML语句 638
28.2.1 FOR XML的Select语句 638
28.2.2简单输出XML 639
28.2.3输出XSD架构 643
28.2.4输出XDR架构 645
28.2.5按路径输出XML 646
28.2.6为输出的XML添加根元素 647
28.2.7 OpenXml函数 648
28.3 XML数据类型 650
28.3.1声明XML数据类型 651
28.3.2为XML类型的变量赋值 651
28.3.3将XML数据插入数据表 653
28.4 XML索引 653
28.4.1 XML索引类型 653
28.4.2使用SQL Server Management Studio创建XML索引 654
28.4.3使用T -SQL语句创建XML索引 656
28.5操作XML 657
28.5.1 Query方法 657
28.5.2 Value方法 658
28.5.3 Exist方法 659
28.5.4在XML实例中插入节点 660
28.5.5在XML实例中修改节点的值 661
28.5.6在XML实例中删除节点 664
28.6 小结 664
第29章 客户端及应用程序访问SQL Server的方式 666
29.1客户端访问SQL Server的方式 666
29.1.1 ODBC接口 666
29.1.2 OLE DB接口 668
29.1.3 ADO组件 668
29.2从Access访问SQL Server 668
29.3使用ASP.NET程序访问SQL Server 669
29.3.1通过ODBC接口访问SQL Server 669
29.3.2通过OLE DB接口访问SQL Server 670
29.4小结 671
第6部分 SQL Server 2008改进篇 673
第30章 对T-SQL的改进 674
30.1兼容级别设置 674
30.1.1语法 674
30.1.2使用SQL Server Management Studio更改兼容级别 675
30.1.3数据库兼容的注意事项 676
30.1.4兼容级别导致的影响 677
30.1.5兼容级别示例 678
30.1.6兼容级别对ORDER BY的影响示例 679
30.2复合运算符 681
30.2.1+=运算符 681
30.2.2-=运算符 681
30.3 Convert函数 682
30.3.1语法 682
30.3.2二进制与字符十六进制转换示例 683
30.4日期和时间功能 683
30.4.1语法 683
30.4.2 ISO周-日示例 684
30.4.3日期功能的注意事项 684
30.5 Grouping Sets分组 685
30.5.1语法 685
30.5.2注意事项 686
30.5.3 Grouping Sets分组示例 686
30.6 MERGE语句 687
30.6.1语法 687
30.6.2 MERGE合并数据源示例 690
30.7 SQL依赖关系报告 691
30.8表值参数 692
30.8.1创建用户表类型 692
30.8.2使用表值参数示例 692
30.8.3使用表值参数进行数据传递的注意事项 692
30.9 T -SQL行构造函数 693
30.10小结 694
第31章 数据存储和数据类型 695
31.1数据存储的改进 695
31.1.1表和索引的压缩存储 695
31.1.2 FILESTREAM存储 701
31.1.3稀疏列和列集 705
31.1.4空间数据的存储、方法和索引 710
31.2新增的数据类型 710
31.2.1 HierarchylD层次化数据 711
31.2.2日期和时间类型 715
31.2.3空间数据类型 718
31.2.4用户定义表类型 723
31.2.5用户定义类型 727
31.3对非关系数据类型的支持 730
31.3.1非关系数据类型概述 731
31.3.2文档和多媒体 731
31.3.3地理信息数据 731
31.3.4 XML数据 732
31.4小结 734
第32章 安全性的增强 735
32.1数据加密 735
32.1.1新的加密辅助函数 735
32.1.2透明数据加密 736
32.1.3外部密钥管理 743
32.2数据审核 743
32.2.1数据审核概述 743
32.2.2进行数据审核 744
32.3 身份验证的改进 752
32.3.1基本身份验证 752
32.3.2端点身份验证 752
32.4小结 753
第33章 SQL Server Integration Service 754
33.1 SSIS简介 754
33.1.1 SSIS的概述 754
33.1.2 SQL Server 2008中SSIS的改进 755
33.2 SSIS结构 756
33.2.1 SSIS的用途 756
33.2.2 SSIS包的组成 757
33.3 SSIS的开发 762
33.3.1设计和实现包 762
33.3.2部署包 767
33.4小结 772
第34章 分析服务的改进 773
34.1多维数据库解决方案设计的改进 773
34.1.1 AMO警示 773
34.1.2维度设计 775
34.1.3多维数据集 777
34.1.4聚合设计 780
34.2资源监控及管理的改进 783
34.2.1资源监控 783
34.2.2块计算 783
34.2.3回写性能 783
34.2.4备份可扩展性 784
34.3 小结 784
第35章 报表服务的改进 785
35.1新增报表制作功能 785
35.1.1新增的数据源类型 785
35.1.2增强的图表数据区域 785
35.1.3仪表数据区域的使用 790
35.1.4 Tablix数据区域 792
35.1.5文本框增强功能 797
35.1.6报表设计器 798
35.2报表处理 799
35.2.1增强的报表导出格式 799
35.2.2报表的部署 799
35.3小结 802