第1篇 基础知识篇 2
第1章 SQL Server 2008概述、安装和配置 2
1.1 SQL Server 2008概述 2
数据库引擎 3
分析服务 3
集成服务 3
复制 4
报表服务 4
通知服务 4
全文搜索 5
Service Broker 5
1.2选择SQL Server 2008的优势 5
1.3安装SQL Server 2008软、硬件要求 6
1.4安装示例 7
1.5服务器网络配置 13
SQL Server配置管理器 13
配置服务器网络协议和网络库 14
加密与SQL Server的连接 14
1.6客户端网络配置 16
本地客户端配置 17
使用防火墙系统 20
1.7小结 23
第2章 SQL Server 2008新增及加强功能介绍 24
2.1新增及加强功能简介 24
2.2安全方面 25
加密 25
审计 26
2.3管理方面 26
数据压缩 26
资源管理器 26
管理非结构化数据 27
2.4开发方面 27
一次性插入多行数据 27
FORCESEEK提示 27
GROUPING SETS 28
兼容性级别 28
用户自定义表数据类型 29
表值参数 29
MERGE语句 30
2.5新的数据类型 31
2.6安装 34
2.7系统效能方面 34
2.8其他增强 34
报表服务的新功能 34
服务器合并解决方案 35
与Microsoft Office 2007结合 36
SQL Server集成服务 36
SQL Server分析服务 36
2.9小结 36
第3章 SQL Server管理工具集 37
3.1 SQL Server管理工具集简介 37
3.2功能组件和工具窗口介绍 39
3.3使用SQL Server管理工具集管理服务器 44
3.4使用SQL Server管理工具集编写、分析和编辑脚本 45
3.5使用SQL Server管理工具集模板 52
3.6在SQL Server管理工具集中开发解决方案和项目 55
3.7 SQL Server管理工具集与其他组件协同工作 61
3.8小结 61
第4章 数据库和规范式 62
4.1概述 62
4.2数据库的物理存储结构设计和逻辑结构设计 64
数据库物理存储结构设计 64
数据库逻辑结构设计 69
4.3创建数据库 73
4.4删除数据库 76
4.5修改数据库 78
修改数据库的名称 78
更改数据库所有者 78
4.6数据库设计规范式 79
4.7系统数据库 82
4.8小结 85
第5章 表 86
5.1概述 86
5.2表的结构 86
5.3创建表 87
字段 89
数据类型 89
表设计 93
全局唯一标识符与自动编号字段 93
用户定义数据类型 95
创建计算字段 96
5.4修改数据记录 97
5.5更改表设计 98
5.6删除表 102
5.7表的连接 103
5.8表的其他操作 106
表的导入 106
锁定表的某些记录 109
5.9小结 111
第6章 索引 112
6.1概述 112
6.2索引的基本概念 113
索引的结构 113
索引的优点和缺点 113
6.3索引的设计准则 113
6.4索引的类型 115
聚集索引与非聚集索引 115
唯一索引与非唯一索引 118
单列索引与多列索引 119
6.5填充因子 119
6.6创建索引 120
6.7禁用索引 125
6.8删除索引 128
6.9小结 132
第7章 视图 133
7.1视图概述 133
视图的优点 134
视图的类型 134
7.2创建视图 135
创建视图的准则 135
创建视图的方法 136
7.3使用视图 141
使用索引视图 141
使用分区视图 145
7.4可更新的视图 147
7.5通过视图来更新数据 148
7.6更改视图 151
更改视图的名称 152
更改视图的定义 152
7.7删除视图 154
7.8小结 154
第8章 数据库的备份、还原和维护 155
8.1概述 155
8.2备份数据库 156
备份概述 156
完全备份 158
差异备份 161
使用事务日志备份 163
将数据库迁移到其他系统进行备份 164
导入/导出 165
8.3还原和恢复数据库 168
还原方案 168
解决孤立用户 169
还原差异数据库备份 170
还原事务日志备份 174
完全恢复 178
大容量日志记录恢复 179
8.4备份和恢复系统数据库 180
备份系统数据库 180
还原系统数据库 181
8.5附加和分离数据库 182
分离数据库 182
附加数据库 185
使用分离和附加操作来移动数据库 187
8.6复制 187
复制类型概述 188
执行复制 189
8.7维护计划和策略 195
维护计划概述 195
如何创建维护计划 196
8.8小结 198
第9章 存储过程 199
9.1存储过程概述 199
存储过程的优缺点 199
存储过程的种类 200
9.2创建存储过程 201
创建自定义存储过程时的一些注意事项 201
创建用户自定义存储过程 201
扩展存储过程 203
存储过程表达式语法解析 203
参数 211
游标 211
嵌套存储过程 213
在存储过程中使用数据库事务处理 215
9.3执行存储过程 215
在SQL Server中执行存储过程 215
在Java/JSP中调用存储过程 216
9.4更新存储过程 216
重命名存储过程 216
修改存储过程 217
重新编译存储过程 219
9.5删除存储过程 219
9.6系统存储过程 221
9.7优化存储过程 222
9.8存储过程分页 222
9.9项目示例:企业员工考勤查询系统 226
9.10小结 232
第10章T-SQL基础 233
10.1概述 233
T-SQL语言的特点 233
T-SQL语言类型 234
10.2数据类型 234
10.3关系代数 236
10.4 T-SQL基本语法约定 240
10.5变量 240
10.6运算符 243
10.7函数 245
10.8控制流程语句 253
10.9小结 258
第11章 高级T-SQL 259
11.1概述 259
11.2脚本与批处理 259
使用INSERT.SELECT进行批处理添加 259
使用INSERT TOP进行批处理添加 261
使用SELECT*INTO进行批处理添加 261
11.3添加存储过程的查询结果 262
11.4使用UPDATE TOP修改数据记录 263
11.5删除数据记录 264
使用DELETE TOP删除数据记录 264
使用带OUTPUT子句的DELETE删除数据记录 264
使用TRUNCATE TABLE表达式删除数据记录 265
11.6汇总和分组数据 266
使用GROUP BY 266
使用COMPUTE BY 268
11.7模糊查询 270
11.8使用T -SQL代码进行全文索引 271
11.9小结 284
第12章 触发器 285
12.1概述 285
12.2创建触发器 287
12.3修改触发器 290
查看触发器 290
修改触发器的定义 292
重命名触发器 292
12.4禁用与启用触发器 293
12.5删除触发器 293
12.6嵌套触发器 294
12.7递归触发器 297
12.8使用触发器 298
使用触发器概述 298
检查特定的字段是否已被修改 299
使用包含ROLLBACK TRANSACTION表达式的触发器 300
有条件的INSERT触发器 301
指定AFTER触发器的顺序 301
使用INSTEAD OF触发器更新视图 304
使用TRY*CATCH表达式 306
使用sp/ addmessage创建用户定义错误消息 309
12.9 DDL触发器、DML触发器和CLR触发器 309
DDL触发器 309
DML触发器 314
CLR触发器 315
12.10实例:员工就餐统计系统 317
12.11小结 324
第13章 作业和警报 325
13.1概述 325
13.2创建作业 325
13.3管理作业 329
修改作业 329
运行作业 332
禁用作业 333
停止作业 334
删除作业 335
13.4作业响应 336
13.5警报 338
创建事件警报 338
创建性能警报 340
编辑警报 341
删除警报 343
13.6操作员 343
创建操作员 343
向操作员分配警报 345
修改操作员 346
删除操作员 348
13.7为作业通知和警报配置SQL Server Agent Mail 348
13.8诊断及解决作业和警报故障 349
13.9实例:企业巡更考勤系统 350
13.10小结 352
第14章 安全 353
14.1概述 353
14.2身份验证 354
身份验证模式概述 354
身份验证模式的更改 354
14.3安全管理 355
SQL Server登录管理 356
数据库角色管理 360
权限管理 361
应用程序角色管理 365
事务日志管理 366
14.4访问管理 367
启用Guest用户 368
拒绝用户访问 368
管理对数据库的访问 370
对数据库访问进行授权 372
管理对表和列的访问 373
14.5数据文件安全 375
14.6安全配置 377
安全配置策略 377
14.7加密 380
14.8小结 384
第15章 SQL Server报表服务 385
15.1 SQL Server报表服务概述 385
15.2报表服务体系架构 386
15.3报表服务功能 388
15.4安装SQL Server报表服务 390
15.5配置报表服务 394
15.6创建和设计报表 399
15.7部署报表服务 402
报表服务的部署模式 402
报表服务部署计划 404
复制报表服务器环境 406
15.8访问报表 407
15.9发布报表 408
15.10管理报表服务 411
管理报表服务的要求 411
报表服务器管理工具 411
报表服务安装的备份和还原 413
报表服务器数据库 414
15.11小结 416
第16章 商业智能开发套件 417
16.1概述 417
16.2 BIDS图形界面介绍 417
起始页 418
BIDS主界面 418
菜单 419
自定义环境、工具和窗口 421
16.3生成BI解决方案 423
16.4设计、开发和调试SQL Server Integration Services包 426
16.5小结 436
第17章 分析服务 437
17.1概述 437
17.2多维数据 437
17.3数据挖掘 438
17.4使用分析服务 440
17.5小结 456
第18章 集成服务 457
18.1概述 457
18.2复制和下载文件 459
FTP任务 460
文件系统任务 463
18.3发送电子邮件以响应事件 467
18.4管理SQL Server对象和数据 472
18.5小结 476
第19章 性能工具 477
19.1概述 477
19.2数据库引擎优化顾问 477
数据库引擎优化顾问图形用户界面(GUI)程序 478
dta实用工具 484
19.3 SQL Server事件探查器(SQL Server Profiler) 489
SQL跟踪 489
使用SQL Server事件探查器 490
19.4小结 495
第20章 配置工具 496
20.1概述 496
20.2报表服务配置管理器 496
20.3 SQL Server配置管理器 498
20.4 SQL Server错误和使用情况报告 500
20.5 SQL Server安装中心 501
20.6小结 502
第2篇 交互提高篇 504
第21章 提高查询性能 504
21.1概述 504
21.2建立索引以快速执行查询 504
21.3用“数据库引擎优化顾问”来优化查询 509
21.4其他提高查询性能方法 513
21.5小结 514
第22章 访问SQL Server 2008 516
22.1配置服务器 516
22.2访问SQL Server 519
22.3远程访问 522
22.4局域网中多个SQL Server 2008互联同步数据 524
22.5项目实例:服务部就餐统计系统 526
22.6小结 532
第23章 SQL Server 2008与Office 2007集成 533
23.1概述 533
23.2 SQL Server与Excel的集成 533
在Excel中使用SQL Server的数据 533
Excel数据转入到SQL Server 536
23.3 SQL Server 2008数据挖掘外接程序 541
Excel表分析工具 542
Excel数据挖掘客户端 550
数据挖掘Visio模板 556
23.4使用SQL Server 2008和Office 2007构造OLAP报表应用 561
23.5小结 564
第24章 Java与SQL Server 565
24.1概述 565
24.2使用JDBC与SQL Server进行交互 565
24.3使用ODBC与SQL Server进行交互 567
24.4项目实例:数字化图书管理系统 571
24.5小结 579
第3篇 项目实战篇 581
第25章 完整项目实例 581
25.1概述 581
25.2企业巡更考勤系统(B/S ) 581
25.3数字化图书管理系统(C/S与B/S结合) 598
25.4小结 620
例2-1一次插入多行数据 27
例2-2FORCESEEK提示 28
例2-3使用CREATE TYPE语句创建用户自定义表数据类型 29
例2-4使用表值参数 29
例2-5使用MERGE在一张表上执行更新和删除操作 31
例2-6新数据类型1 31
例2-7新数据类型2 32
例2-8新数据类型3 32
例2-9设置系统数据类型datetime2 32
例2-10控制数据类型的精度 33
例2-11新数据类型4 33
例2-12经理和雇员之间的父子关系 33
例3-1缩进代码 49
例3-2查找特定部分顺序的存储过程 53
例3-3使用自定义模板 54
例3-4确定结束日期早于开始日期的工作订单 59
例4-1创建未指定文件的数据库 75
例4-2创建指定数据和事务日志文件的数据库 76
例4-3删除单个数据库 77
例4-4删除多个数据库 77
例4-5删除数据库快照 77
例4-6修改数据库名 78
例4-7修改数据库所有者 79
例4-8重建系统数据库 85
例8-1备份到磁盘设备 159
例8-2创建完整备份和差异备份 162
例8-3数据合并 166
例8-4通过OPENDATASOURCE查询表tl 166
例8-5通过OPENROWSET查询表ti 166
例8-6使用bcp 167
例8-7通过SQL执行bcp 167
例8-8数据转换 167
例8-9查找孤立用户 170
例8-10将用户名对应的登录名添加到syslogins中 170
例8-11将用户名映射为指定的登录名 170
例8-12解决dbo为孤立用户的情况 170
例8-13还原数据库及差异数据库备份 173
例8-14还原数据库及其差异数据库和事务日志备份 173
例8-15事务日志还原到某个标记处 177
例8-16还原完整数据库 179
例8-17分离数据库1 183
例8-18分离数据库2 183
例8-19打开数据库主密钥 185
例8-20对主密钥启用自动加密 185
例9-1判断存储过程是否存在 201
例9-2创建存储过程 202
例9-3带有复杂SELECT语句的简单过程 205
例9-4带有参数的简单过程 206
例9-5带有通配符参数的简单过程 207
例9-6使用OUTPUT参数的过程 208
例9-7使用OUTPUT游标参数的过程 209
例9-8使用WITH RECOMPILE选项的过程 210
例9-9使用WITH ENCRYPTION选项过程 210
例9-10创建带参数的储存过程 211
例9-11在存储过程中使用游标 212
例9-12在JSP中调用存储过程 216
例9-13重命名存储过程 217
例9-14修改存储过程test 218
例9-15在Database Engine Query中删除存储过程 220
例9-16删除扩展存储过程 220
例9-18 staffQuery jsp 227
例9-19创建存储过程kqOnDutyReportl 229
例9-20创建存储过程SelectCDate 1 230
例12-1发送通知邮件 288
例12-2 INSTEAD OF触发器 288
例12-3触发器中IF UPDATE应用 288
例12-4虚拟表inserted和deleted 288
例12-5创建触发器 289
例12-6更新t2表中的数据 290
例12-7查询某个数据库中的所有触发器 290
例12-8使用SQL语句查看触发器tg sum的内容 291
例12-9修改触发器的内容 292
例12-10修改触发器名 293
例12-11禁用触发器tg/sum 293
例12-12删除触发器 294
例12-13创建操作记录表 295
例12-14在数据表上创建触发器 295
例12-15创建类别表 295
例12-16在类别表上创建触发器 296
例12-17检测表t的第二列和第三列是否被修改过 299
例12-18触发器回滚 300
例12-19触发器回滚 301
例12-20触发器回滚 301
例12-21有条件的INSERT触发器 301
例12-22创建product Insert触发器 302
例12-23创建product/ Insertl触发器 302
例12-24改变触发器次序 303
例12-25使用Instead Of触发器 305
例12-26包含错误处理函数的存储过程 307
例12-27 CATCH块捕捉错误 308
例12-28TRY CATCH构造处理错误 308
例12-29创建用户定义消息 309
例12-30调用定义的错误消息 309
例 12-31创建用于保护数据库中的数据表不被修改和删除的存储过程 312
例12-32创建用于保护当前SQL Server服务器里所有数据库不能被删除的存储过程 312
例12-33创建用来记录数据库修改状态的触发器 313
例12-34判断库存数量是否为0 315
例12-35使用inserted表 316
例12-36员工就餐统计系统 317
例13-1添加一个没有功能的作业 328
例13-2添加一个具有寻呼、电子邮件和网络发送信息的作业 328
例13-3修改作业 329
例13-5更改原来存在的作业步骤 330
例13-6删除原先存在的作业步骤 331
例13-7从作业中删除关联服务器 331
例13-8将作业指派给本地服务器 331
例13-9将作业指派给不同的服务器 332
例13-10启动作业 333
例13-11更改作业的名称 334
例13-12停止一个作业 335
例13-13删除一个作业 336
例13-14为警报添加电子邮件通知 337
例13-15创建事件警报 340
例13-16编辑警报 342
例13-17删除警报 343
例13-18设置操作员信息 345
例13-19修改操作员信息 347
例13-20删除操作员 348
例13-21企业巡更考勤系统 350
例14-1创建登录ID和默认数据库 358
例14-2创建使用其他默认语言的登录ID 358
例14-3创建带有特定SID的登录ID 358
例14-4删除登录 358
例14-5将Windows NT用户设定为SQL Server登录者 358
例14-6拒绝Windows NT用户登录到SQL Server 359
例14-7删除Windows NT用户的登录信息 359
例14-8显示登录信息 360
例14-9将用户添加到固定服务器角色中 361
例14-10创建应用程序角色 365
例14-11删除数据库中的应用程序角色 365
例14-12修改应用程序角色的密码 366
例14-13启用Guest用户 368
例14-14启用/禁用登录名 368
例14-15检查被禁用的登录名 368
例14-16删除登录名 370
例14-17创建数据库角色并添加用户 370
例14-18判断当前用户 371
例14-19删除用户及角色 371
例14-20为数据库用户授予某种权限 371
例14-21创建数据库用户 372
例14-22撤销用户授权 372
例14-24授予用户对表的操作权限 373
例14-25收回赋予给某个用户的权限 374
例14-26拒绝用户访问 374
例14-27授予权限 374
例14-29产生数据库主密钥 381
例14-30产生密钥 382
例14-31加密数据 382
例14-32数据解密 383
例14-33用RC4算法产生对称密钥 383
例15-1报表服务器的URL示例 396
例22-1查询当前连接所使用的协议 521
例22-2使用连接字符串连接SQL Server 522
例22-3创建一个链接服务器 526
例22-4服务部就餐统计系统 526
例24-1使用JDBC连接MS SQL Server 566
例24-2使用ODBC数据源连接MS SQL Server 571
例24-3数字化图书管理系统 571
例25-1企业巡更考勤系统(B/S ) 581
例25-2数字化图书管理系统(C/S与B/S结合) 598