标题：贯通SQLServer2008数据库系统开发
图书信息
作　者：希赛IT发展研究中心 组编 
袁运亮 主编 余鹏彦 副主编
出 版 社： 电子工业出版社
出版时间： 2009-1-1
页　数：644页
开　本： 16开
ISBN 9787121074288
分类： 图书 >> 计算机/数据库>>SQLServer
定价：￥79.00元（含光盘1张）
宣传语
通五经，贯六艺
遵循循序渐进的原则，
逐步引领读者从基础到各个知识点的学习，
通过两个实例项目进行全面剖析SQL Server在实际工程中的应用。
内容简介
本书可供初学者作为入门书籍，也可为有一定的SQL Server编程基础的程序员作为参考用书，对于缺乏项目实战经验的程序员还可用于快速积累项目开发经验。

目 录
第 1 篇 基础知识篇
第1章　SQL Server 2008概述、安装和配置 2
1.1 SQL Server 2008概述 2
1.1.1 数据库引擎 3
1.1.2 分析服务 3
1.1.3 集成服务 3
1.1.4 复制 4
1.1.5 报表服务 4
1.1.6 通知服务 4
1.1.7 全文搜索 5
1.1.8 Service Broker 5
1.2 选择SQL Server 2008的优势 5
1.3 安装SQL Server 2008软、硬件要求 6
1.4 安装示例 7
1.5 服务器网络配置 13
1.5.1 SQL Server配置管理器 13
1.5.2 配置服务器网络协议和网络库 14
1.5.3 加密与SQL Server的连接 14
1.6 客户端网络配置 16
1.6.1 本地客户端配置 17
1.6.2 使用防火墙系统 20
1.7 小结 23
第2章　SQL Server 2008新增及加强功能介绍 24
2.1 新增及加强功能简介 24
2.2 安全方面 25
2.2.1 加密 25
2.2.2 审计 26
2.3 管理方面 26
2.3.1 数据压缩 26
2.3.2 资源管理器 26
2.3.3 管理非结构化数据 27
2.4 开发方面 27
2.4.1 一次性插入多行数据 27
2.4.2 FORCESEEK提示 27
2.4.3 GROUPING SETS 28
2.4.4 兼容性级别 28
2.4.5 用户自定义表数据类型 29
2.4.6 表值参数 29
2.4.7 MERGE语句 30
2.5 新的数据类型 31
2.6 安装 34
2.7 系统效能方面 34
2.8 其他增强 34
2.8.1 报表服务的新功能 34
2.8.2 服务器合并解决方案 35
2.8.3 与Microsoft Office 2007结合 36
2.8.4 SQL Server集成服务 36
2.8.5 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
4.2.1 数据库物理存储结构设计 64
4.2.2 数据库逻辑结构设计 69
4.3 创建数据库 73
4.4 删除数据库 76
4.5 修改数据库 78
4.5.1 修改数据库的名称 78
4.5.2 更改数据库所有者 78
4.6 数据库设计规范式 79
4.7 系统数据库 82
4.8 小结 85
第5章　表 86
5.1 概述 86
5.2 表的结构 86
5.3 创建表 87
5.3.1 字段 89
5.3.2 数据类型 89
5.3.3 表设计 93
5.3.4 全局唯一标识符与自动编号字段 93
5.3.5 用户定义数据类型 95
5.3.6 创建计算字段 96
5.4 修改数据记录 97
5.5 更改表设计 98
5.6 删除表 102
5.7 表的连接 103
5.8 表的其他操作 106
5.8.1 表的导入 106
5.8.2 锁定表的某些记录 109
5.9 小结 111
第6章　索引 112
6.1 概述 112
6.2 索引的基本概念 113
6.2.1 索引的结构 113
6.2.2 索引的优点和缺点 113
6.3 索引的设计准则 113
6.4 索引的类型 115
6.4.1 聚集索引与非聚集索引 115
6.4.2 唯一索引与非唯一索引 118
6.4.3 单列索引与多列索引 119
6.5 填充因子 119
6.6 创建索引 120
6.7 禁用索引 125
6.8 删除索引 128
6.9 小结 132
第7章　视图 133
7.1 视图概述 133
7.1.1 视图的优点 134
7.1.2 视图的类型 134
7.2 创建视图 135
7.2.1 创建视图的准则 135
7.2.2 创建视图的方法 136
7.3 使用视图 141
7.3.1 使用索引视图 141
7.3.2 使用分区视图 145
7.4 可更新的视图 147
7.5 通过视图来更新数据 148
7.6 更改视图 151
7.6.1 更改视图的名称 152
7.6.2 更改视图的定义 152
7.7 删除视图 154
7.8 小结 154
第8章　数据库的备份、还原和维护 155
8.1 概述 155
8.2 备份数据库 156
8.2.1 备份概述 156
8.2.2 完全备份 158
8.2.3 差异备份 161
8.2.4 使用事务日志备份 163
8.2.5 将数据库迁移到其他系统进行备份 164
8.2.6 导入/导出 165
8.3 还原和恢复数据库 168
8.3.1 还原方案 168
8.3.2 解决孤立用户 169
8.3.3 还原差异数据库备份 170
8.3.4 还原事务日志备份 174
8.3.5 完全恢复 178
8.3.6 大容量日志记录恢复 179
8.4 备份和恢复系统数据库 180
8.4.1 备份系统数据库 180
8.4.2 还原系统数据库 181
8.5 附加和分离数据库 182
8.5.1 分离数据库 182
8.5.2 附加数据库 185
8.5.3 使用分离和附加操作来移动数据库 187
8.6 复制 187
8.6.1 复制类型概述 188
8.6.2 执行复制 189
8.7 维护计划和策略 195
8.7.1 维护计划概述 195
8.7.2 如何创建维护计划 196
8.8 小结 198
第9章　存储过程 199
9.1 存储过程概述 199
9.1.1 存储过程的优缺点 199
9.1.2 存储过程的种类 200
9.2 创建存储过程 201
9.2.1 创建自定义存储过程时的一些注意事项 201
9.2.2 创建用户自定义存储过程 201
9.2.3 扩展存储过程 203
9.2.4 存储过程表达式语法解析 203
9.2.5 参数 211
9.2.6 游标 211
9.2.7 嵌套存储过程 213
9.2.8 在存储过程中使用数据库事务处理 215
9.3 执行存储过程 215
9.3.1 在SQL Server中执行存储过程 215
9.3.2 在Java/JSP中调用存储过程 216
9.4 更新存储过程 216
9.4.1 重命名存储过程 216
9.4.2 修改存储过程 217
9.4.3 重新编译存储过程 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
10.1.1 T-SQL语言的特点 233
10.1.2 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
11.2.1 使用INSERT...SELECT进行批处理添加 259
11.2.2 使用INSERT TOP进行批处理添加 261
11.2.3 使用SELECT...INTO进行批处理添加 261
11.3 添加存储过程的查询结果 262
11.4 使用UPDATE TOP修改数据记录 263
11.5 删除数据记录 264
11.5.1 使用DELETE TOP删除数据记录 264
11.5.2 使用带OUTPUT子句的DELETE删除数据记录 264
11.5.3 使用TRUNCATE TABLE表达式删除数据记录 265
11.6 汇总和分组数据 266
11.6.1 使用GROUP BY 266
11.6.2 使用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
12.3.1 查看触发器 290
12.3.2 修改触发器的定义 292
12.3.3 重命名触发器 292
12.4 禁用与启用触发器 293
12.5 删除触发器 293
12.6 嵌套触发器 294
12.7 递归触发器 297
12.8 使用触发器 298
12.8.1 使用触发器概述 298
12.8.2 检查特定的字段是否已被修改 299
12.8.3 使用包含ROLLBACK TRANSACTION
表达式的触发器 300
12.8.4 有条件的INSERT触发器 301
12.8.5 指定AFTER触发器的顺序 301
12.8.6 使用INSTEAD OF触发器更新视图 304
12.8.7 使用TRY...CATCH表达式 306
12.8.8 使用sp_addmessage创建用户定义错误消息 309
12.9 DDL触发器、DML触发器和CLR触发器 309
12.9.1 DDL触发器 309
12.9.2 DML触发器 314
12.9.3 CLR触发器 315
12.10 实例：员工就餐统计系统 317
12.11 小结 324
第13章　作业和警报 325
13.1 概述 325
13.2 创建作业 325
13.3 管理作业 329
13.3.1 修改作业 329
13.3.2 运行作业 332
13.3.3 禁用作业 333
13.3.4 停止作业 334
13.3.5 删除作业 335
13.4 作业响应 336
13.5 警报 338
13.5.1 创建事件警报 338
13.5.2 创建性能警报 340
13.5.3 编辑警报 341
13.5.4 删除警报 343
13.6 操作员 343
13.6.1 创建操作员 343
13.6.2 向操作员分配警报 345
13.6.3 修改操作员 346
13.6.4 删除操作员 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
14.2.1 身份验证模式概述 354
14.2.2 身份验证模式的更改 354
14.3 安全管理 355
14.3.1 SQL Server登录管理 356
14.3.2 数据库角色管理 360
14.3.3 权限管理 361
14.3.4 应用程序角色管理 365
14.3.5 事务日志管理 366
14.4 访问管理 367
14.4.1 启用Guest用户 368
14.4.2 拒绝用户访问 368
14.4.3 管理对数据库的访问 370
14.4.4 对数据库访问进行授权 372
14.4.5 管理对表和列的访问 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
15.7.1 报表服务的部署模式 402
15.7.2 报表服务部署计划 404
15.7.3 复制报表服务器环境 406
15.8 访问报表 407
15.9 发布报表 408
15.10 管理报表服务 411
15.10.1 管理报表服务的要求 411
15.10.2 报表服务器管理工具 411
15.10.3 报表服务安装的备份和还原 413
15.10.4 报表服务器数据库 414
15.11 小结 416
第16章　商业智能开发套件 417
16.1 概述 417
16.2 BIDS图形界面介绍 417
16.2.1 起始页 418
16.2.2 BIDS主界面 418
16.2.3 菜单 419
16.2.4 自定义环境、工具和窗口 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
18.2.1 FTP任务 460
18.2.2 文件系统任务 463
18.3 发送电子邮件以响应事件 467
18.4 管理SQL Server对象和数据 472
18.5 小结 476
第19章　性能工具 477
19.1 概述 477
19.2 数据库引擎优化顾问 477
19.2.1 数据库引擎优化顾问图形用户界面（GUI）程序 478
19.2.2 dta实用工具 484
19.3 SQL Server事件探查器（SQL Server Profiler） 489
19.3.1 SQL跟踪 489
19.3.2 使用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 篇 交互提高篇
第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
23.2.1 在Excel中使用SQL Server的数据 533
23.2.2 Excel数据转入到SQL Server 536
23.3 SQL Server 2008数据挖掘外接程序 541
23.3.1 Excel表分析工具 542
23.3.2 Excel数据挖掘客户端 550
23.3.3 数据挖掘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 篇 项目实战篇
第25章　完整项目实例 581
25.1 概述 581
25.2 企业巡更考勤系统（B/S） 581
25.3 数字化图书管理系统（C/S与B/S结合） 598
25.4 小结 620
实例目录
例2-1 一次插入多行数据 27
例2-2 FORCESEEK提示 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查询表t1 166
例8-5 通过OPENROWSET查询表t1 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 创建存储过程kqOnDutyReport1 229
例9-20 创建存储过程SelectCDate1 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_Insert1触发器 302
例12-24 改变触发器次序 303
例12-25 使用Instead Of触发器 305
例12-26 包含错误处理函数的存储过程 307
例12-27 CATCH块捕捉错误 308
例12-28 TRY 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