第Ⅰ部分  入    门
         第1章  SQL Server世界 3
         1.1  SQL Server发展简史 3
         1.2  数据库市场中的SQL Server 4
         1.2.1  SQL Server的竞争对手 4
         1.2.2  SQL社区的强大之处 4
         1.3  SQL Server的组件 5
         1.3.1  数据库引擎 5
         1.3.2  服务 5
         1.3.3  商业智能 6
         1.3.4  工具和附加组件 7
         1.3.5  联机资源 9
         1.4  SQL Server 2012的版本 9
         1.5  SQL Server 2012的显著增强 10
         1.6  小结 11
         第2章  数据架构 12
         2.1  信息架构原则 12
         2.2  数据库目标 13
         2.2.1  适用性 13
         2.2.2  可扩展性 14
         2.2.3  数据完整性 14
         2.2.4  性能/可扩展性 15
         2.2.5  可用性 15
         2.2.6  安全性 15
         2.3  智能数据库设计 17
         2.3.1  数据库系统 17
         2.3.2  物理架构 18
         2.3.3  基于集的查询 19
         2.3.4  索引 19
         2.3.5  并发性 19
         2.3.6  高级可扩展性 20
         2.3.7  性能框架 20
         2.3.8  争议和异议 21
         2.4  小结 21
         第3章  安装SQL Server 23
         3.1  准备服务器 24
         3.1.1  硬件和软件需求 24
         3.1.2  适当修补 25
         3.1.3  防火墙 25
         3.2  选择版本 26
         3.2.1  不同版本之间的区别 27
         3.2.2  以后的降级 27
         3.2.3  以后的升级 29
         3.2.4  许可方面的区别 30
         3.3  安装过程 31
         3.3.1  SQL Server 2012安装中心 32
         3.3.2  通过安装中心安装
         SQL Server 2012 33
         3.3.3  通过命令行安装
         SQL Server 2012 41
         3.3.4  通过PowerShell安装
         SQL Server 2012 43
         3.3.5  完成安装后的任务 46
         3.4  小结 49
         第4章  客户端连接 50
         4.1  启用服务器连接 50
         4.1.1  服务器配置管理器 51
         4.1.2  SQL本地客户端连接(SNAC) 52
         4.2  SQL Server本地客户端特性 52
         4.2.1  对LocalDB的本地
         客户端支持 53
         4.2.2  元数据发现 53
         4.2.3  高可用性/灾难恢复支持 53
         4.2.4  改进的日期/时间支持 53
         4.2.5  访问扩展事件日志中的
         诊断信息 54
         4.2.6  ODBC特性 54
         4.2.7  多活动结果集(MARS) 54
         4.2.8  XML数据类型 55
         4.2.9  用户定义类型 55
         4.2.10  大值类型 55
         4.2.11  文件流支持 55
         4.2.12  过期密码处理 55
         4.2.13  快照隔离 56
         4.3  小结 56
         第5章  SQL Server管理和开发工具 57
         5.1  组织界面 58
         5.1.1  窗口放置 59
         5.1.2  上下文菜单 61
         5.2  Registered Servers 61
         5.2.1  管理服务器 61
         5.2.2  服务器组 62
         5.3  Object Explorer 63
         5.3.1  导航树 63
         5.3.2  筛选Object Explorer 65
         5.3.3  Object Explorer Details页面 65
         5.3.4  表设计器 65
         5.3.5  创建数据库关系图 66
         5.3.6  Query Designer 67
         5.3.7  Object Explorer报表 68
         5.4  使用Query Editor 69
         5.4.1  打开连接到服务器的查询 69
         5.4.2  打开.sql文件 70
         5.4.3  快捷方式和书签 71
         5.4.4  查询选项 72
         5.4.5  执行SQL批处理 72
         5.4.6  结果 73
         5.4.7  查看查询执行计划 73
         5.5  使用Solution Explorer 74
         5.6  以模板和代码片段为
         基础编写代码 74
         5.6.1  模板的使用 74
         5.6.2  代码片段的使用 75
         5.7  小结 75
         第Ⅱ部分  建立数据库和处理数据
         第6章  基本的查询流 79
         6.1  了解查询流 80
         6.1.1  查询语句的语法流 80
         6.1.2  查询语句的图形化视图 80
         6.1.3  查询语句的逻辑流 82
         6.1.4  查询语句的物理流 82
         6.2  From 子句数据源 83
         6.2.1  可能的数据源 83
         6.2.2  表别名 84
         6.2.3  表名称 85
         6.2.4  完全限定的名称 85
         6.3  WHERE条件 86
         6.3.1  使用BETWEEN搜索条件 86
         6.3.2  与列表比较 87
         6.3.3  使用LIKE搜索条件 89
         6.3.4  多个WHERE条件 91
         6.4  列、星号、别名和表达式 92
         6.4.1  星号 92
         6.4.2  别名 93
         6.4.3  限定的列 94
         6.5  结果集排序 94
         6.5.1  通过使用列名称来指定顺序 95
         6.5.2  使用表达式指定顺序 96
         6.5.3  使用列别名指定顺序 97
         6.5.4  使用列的顺序位置 97
         6.5.5  ORDER BY和排序规则 97
         6.6  SELECT DISTINCT 99
         6.7  TOP()谓词 100
         6.7.1  WITH TIES选项 102
         6.7.2  随机行选择 102
         6.8  小结 103
         第7章  关系数据库设计和创建
         物理数据库架构 104
         7.1  数据库基础知识 104
         7.1.1  数字化数据库的优点 105
         7.1.2  表、行和列 105
         7.1.3  数据库设计阶段 106
         7.1.4  规范化 106
         7.1.5  三个“一规则” 107
         7.1.6  标识实体 107
         7.1.7  泛化 108
         7.1.8  主键 109
         7.1.9  外键 109
         7.1.10  基数 110
         7.1.11  可选性 110
         7.2  数据设计模式 111
         7.2.1  一对多模式 112
         7.2.2  一对一模式 112
         7.2.3  多对多模式 112
         7.2.4  超型/子型模式 114
         7.2.5  域完整性查找模式 115
         7.2.6  递归模式 116
         7.2.7  数据库设计层 118
         7.3  范式 118
         7.3.1  第一范式(1NF) 118
         7.3.2  第二范式(2NF) 119
         7.3.3  第三范式(3NF) 120
         7.3.4  Boyce-Codd 范式(BCNF) 121
         7.3.5  第四范式(4NF) 122
         7.3.6  第五范式(5NF) 122
         7.4  战略考虑事项 122
         7.4.1  何时在不同的数据库中
         单独存储表 122
         7.4.2  何时使用何种架构 123
         7.5  小结 123
         第8章  数据类型、表达式和
         标量函数 124
         8.1  数据类型 124
         8.1.1  字符数据类型 124
         8.1.2  数值数据类型 125
         8.1.3  日期/时间数据类型 125
         8.1.4  其他数据类型 126
         8.2  构建表达式 126
         8.2.1  运算符 127
         8.2.2  按位运算符 128
         8.2.3  CASE表达式 130
         8.2.4  SQL Server 2012新增的
         逻辑函数 132
         8.2.5  使用空值 133
         8.3  标量函数 138
         8.3.1  用户定义函数 138
         8.3.2  日期和时间函数 139
         8.3.3  SQL Server 2012新增的函数 142
         8.4  字符串函数 143
         8.4.1  SUBSTRING(string,
         starting position,length) 144
         8.4.2  STUFF(string,insertion
         position,delete count,
         string inserted) 144
         8.4.3  CHARINDEX(search string,
         string,starting position) 144
         8.4.4  PATINDEX(pattern,string) 144
         8.4.5  RIGHT(string,count)和
         LEFT(string,count) 145
         8.4.6  LEN(string) 145
         8.4.7  RTRIM(string)和
         LTRIM(string) 145
         8.4.8  UPPER(string)和
         LOWER(string) 145
         8.4.9  REPLACE(string,string) 145
         8.4.10  dbo.pTitleCase(source,
         search,replace) 147
         8.4.11  SQL Server 2012新增的
         字符串函数 148
         8.5  Soundex函数 148
         8.5.1  使用 SOUNDEX()函数 149
         8.5.2  使用DIFFERENCE()
         Soundex 函数 151
         8.6  数据类型的转换函数 151
         8.7  服务器环境信息 154
         8.8  小结 155
         第9章  用联接、子查询和CTE
         合并数据 156
         9.1  使用联接 157
         9.1.1  内联接 158
         9.1.2  外联接 162
         9.1.3  自联接 167
         9.1.4  交叉联接 168
         9.1.5  特殊联接 169
         9.2  差集查询 170
         9.2.1  左差集查询 170
         9.2.2  全差集查询 171
         9.3  使用联合 171
         9.3.1  UNION ALL查询 171
         9.3.2  交集联合 172
         9.3.3  差值联合/EXCEPT 173
         9.4  子查询 173
         9.4.1  简单子查询 174
         9.4.2 把子查询用作列表 177
         9.4.3  嵌套子查询 177
         9.4.4  把子查询用作表 177
         9.4.5  相关子查询 179
         9.5  小结 182
         第10章  聚合、窗口化和排名数据 183
         10.1  聚合数据 183
         10.1.1  基本聚合 183
         10.1.2  聚合、平均和空值 185
         10.2  结果集中的分组 185
         10.2.1  简单分组 186
         10.2.2  分组集 187
         10.2.3  筛选已分组的结果 188
         10.3  窗口化和排名 189
         10.3.1  窗口化 189
         10.3.2  OVER()子句 189
         10.3.3  在窗口内分区 190
         10.4  排名函数 191
         10.4.1  ROW_NUMBER()函数 191
         10.4.2  RANK()函数和
         DENSE_RANK()函数 193
         10.4.3  NTILE()函数 195
         10.4.4  聚合函数 196
         10.4.5  SQL Server 2012新增的
         T-SQL特性 197
         10.4.6  前一行和当前行 198
         10.5  小结 199
         第11章  通过视图投影数据 200
         11.1  使用视图的理由 200
         11.2  基本视图 202
         11.2.1  运用Query Designer
         创建视图 202
         11.2.2  用DDL代码创建视图 203
         11.2.3  执行视图 204
         11.2.4  更改并删除视图 205
         11.3  从更广泛的角度看视图 206
         11.3.1  列别名 206
         11.3.2  ORDER BY和视图 206
         11.3.3  视图限制 207
         11.3.4  嵌套视图 207
         11.3.5  通过视图更新 209
         11.3.6  视图和性能 209
         11.4  锁定视图 210
         11.4.1  未经检查的数据 210
         11.4.2  保护数据 211
         11.4.3  保护视图 212
         11.4.4  加密视图的SELECT语句 213
         11.4.5  应用程序元数据 213
         11.5  运用同义词 214
         11.6  小结 214
         第12章  在SQL Server中修改数据 215
         12.1  插入数据 216
         12.1.1  插入简单的值行 216
         12.1.2  从SELECT插入结果集 219
         12.1.3  从存储过程插入结果集 220
         12.1.4  创建默认行 222
         12.1.5  在插入数据时创建表 222
         12.2  更新数据 224
         12.2.1  更新单个表 224
         12.2.2  执行全局搜索和替代 225
         12.2.3  更新数据时引用多个表 226
         12.3  删除数据 230
         12.3.1  删除时引用多个数据源 231
         12.3.2  级联删除 232
         12.3.3  物理删除数据的其他选择 232
         12.4  合并数据 233
         12.5  返回修改后的数据 237
         12.5.1  从插入返回数据 237
         12.5.2  从更新返回数据 237
         12.5.3  从删除返回数据 238
         12.5.4  从合并返回数据 238
         12.5.5  把数据返回到表中 239
         12.6  小结 239
         第Ⅲ部分  高级T-SQL数据类型和查询技术
         第13章  操作层次结构 243
         13.1  HierarchyID 243
         13.1.1  选择单个节点 245
         13.1.2  搜索祖先节点 246
         13.1.3  执行子树搜索 246
         13.1.4  插入新节点 247
         13.2  HierarchyID方法 248
         13.3  索引策略 250
         13.4  层次结构数据的备选
         操作方式 251
         13.4.1  递归CTE 251
         13.4.2  XML 252
         13.5  小结 253
         第14章  使用XML数据 254
         14.1  XML数据类型 255
         14.1.1  类型化XML和
         非类型化XML 259
         14.1.2  XML架构 260
         14.1.3  XML列和变量 262
         14.1.4  XML参数和返回值 263
         14.2  XML数据类型方法 265
         14.2.1  XPath 265
         14.2.2  value() 265
         14.2.3  nodes()方法 266
         14.2.4  exist() 266
         14.2.5  query()和modify() 266
         14.3  FOR XML 267
         14.3.1  AUTO 267
         14.3.2  RAW 270
         14.3.3  EXPLICIT 271
         14.3.4  PATH 272
         14.4  XQuery与FLWOR操作 274
         14.5  小结 275
         第15章  分布式查询的执行 276
         15.1  分布式查询概述 276
         15.2  分布式查询的开发 284
         15.2.1  分布式查询和SSMS 284
         15.2.2  分布式视图 284
         15.2.3  使用分布式事务 287
         15.3  性能事项 289
         15.3.1  优化分布式查询 289
         15.3.2  分片和联合 290
         15.4  小结 291
         第Ⅳ部分  使用T-SQL编程
         第16章  使用T-SQL编程 295
         16.1  Transact-SQL基础 295
         16.1.1  T-SQL批处理 296
         16.1.2  T-SQL格式化 297
         16.2  操作变量 298
         16.2.1  变量默认值和作用域 298
         16.2.2  使用SET命令和
         SELECT命令 299
         16.2.3  增量变量 300
         16.2.4  条件选择 301
         16.2.5  在SQL查询中使用变量 301
         16.2.6  多重赋值变量 302
         16.3  过程流 303
         16.3.1  使用条件T-SQL的
         IF命令 303
         16.3.2  使用WHILE循环 305
         16.3.3  使用GOTO命令
         移动到标签 306
         16.4  通过代码分析SQL Server 306
         16.4.1  动态管理对象 306
         16.4.2  sp_help 307
         16.4.3  系统函数 308
         16.5  临时表和表变量 308
         16.5.1  本地临时表 308
         16.5.2  全局临时表 309
         16.5.3  表变量 310
         16.6  SQL Server 2012中关于
         T-SQL的新增内容 311
         16.6.1  调试增强 311
         16.6.2  元数据发现 311
         16.6.3  OFFSET和FETCH 312
         16.7  错误处理 313
         16.7.1  遗留错误处理 314
         16.7.2  RAISERROR 315
         16.7.3  TRY…CATCH 318
         16.7.4  T-SQL致命错误 323
         16.8  批量操作 323
         16.8.1  批量插入 324
         16.8.2  BCP 326
         16.9  小结 326
         第17章  存储过程的开发 327
         17.1  管理存储过程 328
         17.1.1  创建、更改和删除 328
         17.1.2  查看存储过程 329
         17.1.3  加密存储过程代码 330
         17.1.4  执行存储过程 331
         17.1.5  系统存储过程 331
         17.2  把数据传递到存储过程 332
         17.2.1  输入参数 332
         17.2.2  提供列表和表作为
         存储过程的输入参数 334
         17.3  从存储过程中返回数据 338
         17.3.1  输出参数 338
         17.3.2  RETURN命令的运用 339
         17.3.3  结果集 340
         17.3.4  返回数据的路径和范围 342
         17.4  小结 343
         第18章  构建用户定义的函数 344
         18.1  标量函数 345
         18.1.1  理解限制 345
         18.1.2  创建标量函数 346
         18.1.3  调用标量函数 347
         18.2  内联表值函数 347
         18.2.1  创建内联表值函数 348
         18.2.2  调用内联表值函数 348
         18.2.3  使用参数 349
         18.2.4  将用户定义函数
         相互关联 350
         18.2.5  使用架构绑定创建函数 350
         18.3  多语句表值函数 351
         18.3.1  创建多语句表值函数 351
         18.3.2  调用函数 352
         18.4  用户定义函数的最佳实践 353
         18.4.1  性能最大化 353
         18.4.2  使用一致的命名约定 353
         18.5  小结 353
         第Ⅴ部分  企业数据管理
         第19章  配置SQL Server 357
         19.1  设置选项 357
         19.1.1  配置服务器 358
         19.1.2  配置数据库 361
         19.1.3  配置连接 362
         19.1.4  外围应用配置器方面 363
         19.2  配置选项 363
         19.2.1  显示高级选项 363
         19.2.2  启动/停止配置属性 365
         19.2.3  内存配置属性 368
         19.2.4  处理器配置属性 372
         19.2.5  安全配置属性 377
         19.2.6  连接配置属性 380
         19.2.7  高级服务器配置属性 385
         19.2.8  配置数据库自动选项 388
         19.2.9  游标配置属性 390
         19.2.10  SQL ANSI配置属性 392
         19.2.11  触发器配置属性 398
         19.2.12  数据库状态配置属性 398
         19.2.13  恢复配置属性 400
         19.3  小结 403
         第20章  基于策略的管理 404
         20.1  定义策略 404
         20.1.1  管理方面 406
         20.1.2  健康条件 407
         20.1.3  创建策略 409
         20.2  评估策略 413
         20.3  小结 414
         第21章  备份和恢复计划 415
         21.1  恢复概念 416
         21.2  恢复模型 417
         21.2.1  简单恢复模型 417
         21.2.2  完整恢复模型 418
         21.2.3  批量日志恢复模型 419
         21.2.4  设置恢复模型 420
         21.2.5  修改恢复模型 420
         21.3  备份数据库 421
         21.3.1  备份目标 421
         21.3.2  备份轮换 421
         21.3.3  用Management Studio
         执行备份 421
         21.3.4  用代码备份数据库 423
         21.3.5  用代码验证备份 426
         21.4  使用事务日志 426
         21.4.1  事务日志内 426
         21.4.2  备份事务日志 428
         21.4.3  截断日志 429
         21.4.4  事务日志和简单恢复
         模型 429
         21.5  恢复操作 429
         21.5.1  检测问题 430
         21.5.2  恢复顺序 430
         21.5.3  用Management Studio
         执行还原 431
         21.5.4  还原个别页面 433
         21.5.5  通过T-SQL代码还原 434
         21.6  系统数据库恢复 438
         21.6.1  master数据库 438
         21.6.2  msdb系统数据库 440
         21.7  执行完全恢复 440
         21.8  小结 441
         第22章  维护数据库 442
         22.1  DBCC命令 442
         22.1.1  数据库完整性 444
         22.1.2  数据库文件大小 452
         22.1.3  其他DBCC命令 456
         22.2  管理数据库维护 457
         22.2.1  计划数据库维护 457
         22.2.2  维护计划 457
         22.2.3  命令行维护 462
         22.2.4  监控数据库维护 462
         22.3  小结 463
         第23章  传输数据库 464
         23.1  Copy Database Wizard 465
         23.2  使用SQL脚本 467
         23.3  分离和附加 470
         23.4  Import and Export Wizard 472
         23.5  数据层应用程序(DAC) 474
         23.6  小结 475
         第24章  数据库快照 477
         24.1  数据库快照的工作原理 478
         24.1.1  数据库快照的机制 478
         24.1.2  第一次写时复制 478
         24.2  使用数据库快照 479
         24.2.1  创建数据库快照 479
         24.2.2  查询数据库快照 481
         24.2.3  删除数据库快照 482
         24.2.4  回滚数据库快照 482
         24.3  小结 484
         第25章  使用Service Broker进行
         异步消息传输 48525.1  配置消息队列 486
         25.2  使用对话 488
         25.2.1  将消息发送到队列 488
         25.2.2  接收消息 489
         25.3  SQL Server 2012中Service
         Broker的新增功能 491
         25.3.1  消息多播 491
         25.3.2  AlwaysOn支持 491
         25.3.3  有害消息处理 492
         25.3.4  消息排队时间 492
         25.4  监控Service Broker和
         排除故障 492
         25.5  小结 493
         第26章  日志传送 494
         26.1  可用性测试 495
         26.2  温备用可用性 495
         26.3  定义日志传送 496
         26.4  检查日志传送配置 504
         26.5  监视日志传送 505
         26.6  修改或删除日志传送 506
         26.7  切换角色 508
         26.8  小结 509
         第27章  数据库镜像 510
         27.1  数据库镜像概述 511
         27.2  定义和配置数据库镜像 512
         27.3  检查数据库镜像配置 520
         27.4  监控数据库镜像 522
         27.4.1  使用Database Mirroring
         Monitor监控 522
         27.4.2  使用System Monitor监控 525
         27.4.3  使用SQL Server Profiler
         监控 525
         27.5  暂停或删除数据库镜像 526
         27.6  角色切换 526
         27.7  高可用性/AlwaysOn 528
         27.7.1  要求和前提条件 528
         27.7.2  配置AlwaysOn
         Availability Groups 529
         27.7.3  监控AlwaysOn
         Availability Groups 536
         27.8  小结 537
         第28章  复制数据 538
         28.1  在服务器之间移动数据 538
         28.1.1  批量复制程序 539
         28.1.2  SSIS 539
         28.1.3  分发式事务 539
         28.1.4  触发器 539
         28.1.5  Copy Database Wizard 539
         28.1.6  备份和还原 539
         28.1.7  日志传送 540
         28.1.8  数据库镜像 540
         28.2  复制的概念 540
         28.2.1  复制的类型 540
         28.2.2  复制代理 541
         28.2.3  事务一致性 542
         28.3  配置复制 542
         28.3.1  创建发布服务器和
         分发服务器 542
         28.3.2  使用远程分发服务器 543
         28.3.3  创建一个快照/事务发布 544
         28.3.4  创建事务/快照发布的
         推送订阅 546
         28.3.5  创建事务/快照发布的
         请求订阅 547
         28.3.6  创建对等拓扑 548
         28.3.7  创建一个合并发布 548
         28.3.8  Web同步 549
         28.4  小结 550
         第29章  群集 551
         29.1 群集的功能 551
         29.1.1  高可用性和可伸缩性 551
         29.1.2  在线的含义 552
         29.1.3  群集的工作原理 552
         29.2  配置群集 553
         29.2.1  配置Windows Server
         2008/2008R2的群集 553
         29.2.2  把SQL Server 2012
         安装为群集实例 558
         29.2.3 测试故障转移 565
         29.3  小结 566
         第30章  用PowerShell配置和
         管理SQL Server 567
         30.1  使用PowerShell的原因 567
         30.2  PowerShell基本知识 568
         30.2.1  语言特性 568
         30.2.2  创建脚本 573
         30.3  SQL Server PowerShell扩展 577
         30.3.1  导入模块 577
         30.3.2  SQL PSDrive——
         SQLSERVER 577
         30.3.3  SQL cmdlet 578
         30.4  通过SMO与SQL Server
         通信 580
         30.4.1  SQL Server管理对象 580
         30.4.2  ADO.NET 583
         30.5  编写SQL Server任务脚本 585
         30.5.1  管理任务 585
         30.5.2  基于数据的任务 588
         30.6  小结 589
         第31章  管理Windows Azure SQL
         Database 中的数据 590
         31.1  Azure SQL Database概述 590
         31.2  管理Windows Azure SQL
         Database 590
         31.2.1  SQL Server Management
         Studio 591
         31.2.2  Windows Azure SQL
         Database管理器 592
         31.2.3  在SQL Database中创建
         数据库 592
         31.3  高可用性和可伸缩性 593
         31.3.1 高可用性 593
         31.3.2  可伸缩性 594
         31.4  把数据迁移到
         SQL Database中 594
         32.4.1  生成脚本向导 595
         31.4.2  SQL Server Integration
         Services 601
         31.4.3  使用bcp实用工具 608
         31.5  小结 610
         第Ⅵ部分  保护SQL Server的安全
         第32章  SQL Server中的身份
         验证类型 613
         32.1  Windows身份验证 615
         32.2  SQL身份验证 615
         32.3  SQL和Windows身份
         验证之间的区别 616
         32.4  Kerberos和Windows
         身份验证委托 616
         32.5  小结 617
         第33章  授权安全对象 618
         33.1  权限链 618
         33.2  对象所有权 619
         33.3  安全对象的权限 619
         33.4  对象安全 620
         33.4.1  用户自定义数据库角色 620
         33.4.2  对象权限 620
         33.4.3  用代码授予对象权限 621
         33.4.4  用代码撤消和拒绝
         对象权限 622
         33.4.5  公共角色 623
         33.4.6  用代码管理角色 623
         33.4.7  分层角色结构 624
         33.4.8  对象安全和Management
         Studio 624
         33.5  一个示例安全模型 625
         33.6  视图和安全 625
         33.7  小结 626
         第34章  数据加密 627
         34.1  数据加密简介 627
         34.1.1  密钥的层次结构 628
         34.1.2  用T-SQL加密 628
         34.1.3  用对称密钥加密 630
         34.1.4  使用非对称密钥 631
         34.1.5  使用证书 632
         34.2  小结 632
         第35章  行级安全性 633
         35.1  Security表 633
         35.2  分配权限 635
         35.2.1  分配安全性 635
         35.2.2  处理安全级别的更新 638
         35.3  检查权限 640
         35.3.1  安全检查存储过程 640
         35.3.2  安全检查函数 641
         35.3.3  使用Windows登录 642
         35.3.4  安全检查触发器 644
         35.4  小结 644
         第Ⅶ部分  监视和审计
         第36章  触发器的创建 647
         36.1  触发器基础 647
         36.1.1  事务流 648
         36.1.2  触发器的创建 648
         36.1.3  AFTER触发器 649
         36.1.4  INSTEAD OF触发器 650
         36.1.5  触发器限制 651
         36.1.6  禁用触发器 651
         36.1.7  列出触发器 652
         36.1.8  触发器和安全性 652
         36.2  处理事务 652
         36.2.1  确定已更新的列 653
         36.2.2  inserted和deleted逻辑表 654
         36.2.3  开发支持多行的触发器 655
         36.3  多个触发器之间的交互 656
         36.3.1  触发器的组织 657
         36.3.2  嵌套触发器 657
         36.3.3  递归触发器 658
         36.3.4  INSTEAD OF触发器和
         AFTER触发器一起使用 660
         36.3.5  多个AFTER触发器 660
         36.4  事务聚合处理 660
         36.4.1  库存事务触发器 661
         36.4.2  库存触发器 662
         36.5  DDL触发器 664
         36.6  DDL触发器的管理 664
         36.6.1  创建和更改DDL触发器 664
         36.6.2  触发器的作用域 665
         36.6.3  DDL触发器和安全性 666
         36.6.4  启用和禁用DDL触发器 666
         36.6.5  删除DDL触发器 667
         36.7  DDL触发器的开发 667
         36.7.1  EventData()函数 667
         36.7.2  避免数据库对象的更改 668
         36.8  小结 669
         第37章  性能监视器和PAL 670
         37.1  使用PerfMon 670
         37.1.1  系统监视器 670
         37.1.2  Data Collector Set 673
         37.1.3  使用PowerShell访问
         性能计数器 674
         37.2  小结 676
         第38章  使用Profiler和SQL Trace 677
         38.1  SQL Server Profiler的功能 677
         38.2  运行Profiler 677
         38.2.1  定义新的跟踪 678
         38.2.2  选择事件和数据列 678
         38.2.3  筛选事件 680
         38.2.4  组织列 680
         38.2.5  运行跟踪 681
         38.2.6  使用跟踪文件 681
         38.2.7  集成性能监视器数据 681
         38.3  使用SQL Trace 682
         38.4  小结 684
         第39章  等待状态 685
         39.1  SQL Server OS 685
         39.2  查看等待状态统计信息 686
         39.2.1  执行请求 686
         39.2.2  等待状态统计信息 686
         39.2.3  等待请求 687
         39.3  常见的红旗等待类型 687
         39.4  收集等待数据的其他方式 688
         39.5  小结 688
         第40章  Extended Events 689
         40.1  Extended Events对象模型 689
         40.1.1  包 689
         40.1.2  事件 690
         40.1.3  动作 690
         40.1.4  目标 691
         40.1.5  谓词 691
         40.1.6  映射 691
         40.1.7  会话 692
         40.1.8  通道 692
         40.2  system_health会话 692
         40.3  Extended Events Profiler 692
         40.4  小结 694
         第41章  数据更改的跟踪和捕获 695
         41.1  配置Change Tracking 695
         41.1.1  启用数据库 696
         41.1.2  自动清理 696
         41.1.3  启用表 697
         41.1.4  内部表 698
         41.2  查询Change Tracking 699
         41.2.1  版本号 699
         41.2.2  行变更 700
         41.3  删除Change Tracking 701
         41.4  Change Data Capture 702
         41.5  SQL Server 2012中的
         新增功能 703
         41.6  启用CDC 703
         41.6.1  启用数据库 703
         41.6.2  启用表 704
         41.7  使用Change Data Capture 705
         41.7.1  检查日志序号 705
         41.7.2  查询变更表 706
         41.7.3  查询净更改 708
         41.7.4  迭代变更表 710
         41.8  删除Change Data Capture 710
         41.9  小结 711
         第42章  SQL Audit 712
         42.1  SQL Audit技术概述 712
         42.2  创建Audit对象 713
         42.2.1  定义目标 714
         42.2.2  使用T-SQL 714
         42.2.3  启用/禁用审计 715
         42.3  Server Audit Specification 715
         42.3.1  添加操作 716
         42.3.2  用T-SQL创建 716
         42.3.3  修改Server Audit
         Specification 716
         42.4  Database Audit Specification 716
         42.5  查看审计线索 717
         42.6  小结 718
         第43章  管理数据仓库 719
         43.1  使用管理数据仓库 719
         43.2  配置MDW 720
         43.3  建立数据集合 723
         43.4  查看MDW报表 724
         43.4.1  磁盘使用情况汇总 724
         43.4.2  服务器活动历史报表 725
         43.4.3  查询统计信息报表 726
         43.5  创建定制的数据收集器集合 726
         43.6  小结 728
         第Ⅷ部分  性能调整和优化
         第44章  解释查询执行计划 731
         44.1  查看查询执行计划 732
         44.1.1  估计和实际查询执行计划 732
         44.1.2  阅读执行计划 732
         44.1.3  使用Showplan和
         STATISTICS PROFILE 733
         44.1.4  SQL Profiler的执行计划 734
         44.2  理解查询执行计划 735
         44.3  小结 736
         第45章  索引策略 737
         45.1  索引的艺术 737
         45.2  索引基础 738
         45.2.1  B-树索引 738
         45.2.2  聚集索引 738
         45.2.3  非聚集索引 739
         45.2.4  复合索引 740
         45.2.5  唯一索引和约束 740
         45.2.6  页面分隔问题 740
         45.2.7  索引选择性 741
         45.2.8  无序的堆 742
         45.2.9  查询操作 742
         45.3  查询路径 743
         45.3.1  查询路径1:提取
         所有数据 745
         45.3.2  查询路径2:聚集
         索引查找 745
         45.3.3  查询路径3:范围
         查找查询 745
         45.3.4  查询路径4:用非键
         列筛选 747
         45.3.5  查询路径5:书签查找 748
         45.3.6  查询路径6:覆盖索引 749
         45.3.7  查询路径7:用2个NC
         索引来筛选 752
         45.3.8  查询路径8:用有序的
         复合索引筛选 753
         45.3.9  查询路径9:用无序的
         复合索引筛选 753
         45.3.10  查询路径10:Non-
         SARG-able表达式 754
         45.4  全面的索引策略 755
         45.4.1  标识重要查询 755
         45.4.2  选择聚集索引 756
         45.4.3  创建基索引 757
         45.5  特殊索引 757
         45.5.1  筛选索引 757
         45.5.2  索引视图 758
         45.5.3  Columnstore索引 760
         45.6  小结 760
         第46章  最大限度地重用查询计划 762
         46.1  查询编译 762
         46.1.1  Query Optimizer 762
         46.1.2  查看Plan Cache 763
         46.1.3  查询计划的生存期 764
         46.1.4  执行查询计划 764
         46.2  查询重编译 764
         46.3  小结 765
         第47章  管理事务、锁定和阻塞 766
         47.1  ACID属性 767
         47.1.1  原子性 767
         47.1.2  一致性 767
         47.1.3  隔离性 767
         47.1.4  持久性 768
         47.2  事务的编程 768
         47.2.1  逻辑事务 768
         47.2.2  Xact_State()函数 769
         47.2.3  Xact_Abort 769
         47.2.4  嵌套事务 770
         47.2.5  隐式事务 770
         47.2.6  保存点 771
         47.3  默认的锁定和阻塞行为 771
         47.4  监控锁定和阻塞 773
         47.4.1  使用Management Studio
         报表查看阻塞 773
         47.4.2  使用Activity Monitor
         查看阻塞 774
         47.4.3  使用Profiler 775
         47.4.4  使用动态管理视图查询锁 775
         47.5  死锁 776
         47.5.1  创建死锁 777
         47.5.2  自动检测死锁 779
         47.5.3  处理死锁 779
         47.5.4  最小化死锁 780
         47.6  理解SQL Server锁定 781
         47.6.1  锁粒度 781
         47.6.2  锁模式 781
         47.6.3  控制锁定超时 783
         47.6.4  锁定持续时间 783
         47.6.5  索引级的锁定限制 783
         47.7  事务隔离级别 784
         47.7.1  设置事务隔离级别 785
         47.7.2  级别1——Read
         Uncommitted和脏读取 786
         47.7.3  级别2——Read
         Committed 787
         47.7.4  级别3——Repeatable
         Read 787
         47.7.5  级别4——Serializable 790
         47.7.6  快照隔离 793
         47.7.7  使用锁定提示 795
         47.8  应用程序锁 796
         47.9  应用程序锁定设计 797
         47.9.1  实现乐观锁定 797
         47.9.2  丢失更新 797
         47.10  事务日志的体系结构 798
         47.10.1  事务日志序列 798
         47.10.2  事务日志恢复 800
         47.11  事务性能策略 801
         47.12  小结 802
         第48章  数据压缩 803
         48.1  理解数据压缩 803
         48.1.1  数据压缩的优缺点 804
         48.1.2  行压缩 805
         48.1.3  页面压缩 805
         48.1.4  压缩序列 806
         48.2  应用数据压缩 807
         48.2.1  确定当前压缩设置 807
         48.2.2  估计数据压缩 807
         48.2.3  启用数据压缩 808
         48.2.4  数据压缩策略 809
         48.3  小结 810
         第49章  分区 811
         49.1  分区策略 811
         49.2  分区视图 812
         49.3  已分区表和索引 817
         49.3.1  创建文件组 818
         49.3.2  创建分区函数 820
         49.3.3  创建分区模式 820
         49.3.4  创建分区表 821
         49.3.5  查询分区表 822
         49.3.6  修改分区表 822
         49.3.7  切换表 823
         49.3.8  滚动分区 825
         49.3.9  给已分区表建立索引 826
         49.3.10  删除分区 826
         49.4  小结 826
         第50章  Resource Governor 827
         50.1  研究Resource Governor的
         基础知识 827
         50.1.1  理解资源池 827
         50.1.2  工作负载组 830
         51.1.3  分类器函数 832
         50.2  Resource Governor的
         性能监控 833
         50.3  视图和限制 834
         50.4  小结 834
         第Ⅸ部分  商 业 智 能
         第51章  BI数据库设计 837
         51.1  数据仓库 837
         51.2  使用星型架构设计数据仓库 838
         51.3  用雪片型架构设计数据仓库 839
         51.4  在数据仓库中确保一致性 839
         51.5  加载数据 840
         51.5.1  加载维度 840
         51.5.2  加载事实表 842
         51.5.3  修改维度中的数据 842
         51.6  小结 843
         第52章  在Integration Services中
         建立、部署和管理ETL
         工作流 844
         52.1  SSIS环境概述 845
         52.1.1  在SQL Server Data
         Services中创建基本的
         SSIS包 846
         52.1.2  使用UI改进功能方便地
         配置一个数据流任务中的
         包元素 848
         52.2  SSIS环境详述 852
         52.2.1  使用连接管理器 852
         52.2.2  使用控制流元素 854
         52.2.3  使用数据流组件 858
         52.2.4  使用参数和变量 863
         52.2.5  变量 864
         52.2.6  使用SSIS表达式语言 865
         52.2.7  使用包的日志记录 866
         52.3  部署、执行项目和包 866
         52.3.1  使用包部署模型 866
         52.3.2  从(旧)包模型转换为
         项目模型 867
         52.3.3  使用项目部署模型 867
         52.3.4  使用SSIS服务器执行
         项目和包 868
         52.4  小结 870
         第53章  在Analysis Services中使用
         MDX构建多维数据集 871
         53.1  Analysis Services的快速启动 871
         53.2  Analysis Services体系结构 872
         53.2.1  统一维度模型 872
         53.2.2  服务器 872
         53.2.3  客户端 873
         53.3  构建数据库 873
         53.3.1  SQL Server Data Tools 873
         53.3.2  数据源 873
         53.3.3  数据源视图 874
         53.3.4  创建多维数据集 877
         53.4  维度 877
         53.4.1  创建维度 877
         53.4.2  常规维度之外的内容 880
         53.4.3  维度的细化 880
         53.5  多维数据集 881
         53.5.1  维度的使用 883
         53.5.2  Calculations选项卡 883
         53.5.3  KPI 884
         53.5.4  动作 884
         53.5.5  分区 884
         53.5.6  聚合函数的设计 885
         53.5.7  透视 886
         53.6  数据存储 887
         53.7  多维数据集的处理 887
         53.7.1  处理方法 888
         53.7.2  其他考虑 888
         53.7.3  空值处理 889
         53.7.4  未知成员 889
         53.7.5  错误配置 889
         53.8  小结 889
         第54章  配置和管理Analysis
         Services 890
         54.1  安装Analysis Services 890
         54.2  配置Analysis Services的
         基本设置 893
         54.3  高级SSAS部署 894
         54.4  使用SQL Profiler评估
         查询性能 895
         54.5  小结 896
         第55章  使用Reporting Services
         编写报表 897
         55.1 报表编写环境 897
         55.1.1  SQL Server Data Tools(SSDT)
         中的Report Designer 898
         55.1.2  Report Builder 898
         55.1.3  Power View 898
         55.2  报表的基本组成 898
         55.2.1  数据源 898
         55.2.2  数据集 899
         55.2.3  报表定义语言(RDL)文件 899
         55.3  用Report Wizard建立报表 900
         55.4  从头编写报表 901
         55.5  研究Report Designer 902
         55.5.1  设计界面 902
         55.5.2  Solution Explorer和
         Properties 902
         55.5.3  Report Data和Toolbox
         面板 903
         55.5.4  文本框属性窗口 904
         55.6  使用Reporting Services
         功能显示数据 905
         55.6.1  创建Matrix报表 905
         55.6.2  处理多维数据集 905
         55.6.3  使用参数 907
         55.6.4  使用RS Expressions 909
         55.7  设计报表布局 909
         55.7.1  选择报表类型 909
         55.7.2  分组和排序 910
         55.7.3  使用图表工具 910
         55.8  用Report Builder建立报表 912
         55.8.1  用Report Builder
         创建报表 912
         55.8.2  使用Report Gallery 914
         55.9  小结 915
         第56章  配置和管理Reporting
         Services 916
         56.1  安装Reporting Services 916
         56.1.1  本机模式 916
         56.1.2  SharePoint 集成模式 917
         56.2  部署Reporting Services报表 919
         56.2.1  使用SSDT部署报表 919
         56.2.2  使用Report Manager
         部署报表——本机模式 920
         56.2.3  在SharePoint中部署报表 920
         56.3  用Reporting Services
         管理安全 922
         56.3.1  在本机模式下管理角色 923
         56.3.2  用角色管理访问权限 924
         56.3.3  管理订阅 926
         56.3.4  创建数据驱动的订阅 927
         56.3.5  集成模式下的
         Data Alerts 927
         56.4  灾难恢复 927
         56.4.1  备份目录 928
         56.4.2  备份对称密钥 928
         56.4.3  还原Reporting Services 929
         56.5  小结 929
         第57章  使用Analysis Services
         挖掘数据 930
         57.1  数据挖掘过程 930
         57.2  使用Analysis Services建模 931
         57.2.1  数据挖掘向导 931
         57.2.2  挖掘模型 932
         57.2.3  模型评估 933
         57.3  算法 936
         57.3.1  决策树 936
         57.3.2  线性回归 937
         57.3.3  聚类分析 937
         57.3.4  序列聚类分析 938
         57.3.5  神经网络 938
         57.3.6  逻辑回归 938
         57.3.7  Naive Bayes 939
         57.3.8  关联规则 940
         57.3.9  时间序列 940
         57.4  多维数据集集成 941
         57.5  小结 941
         第58章  创建和部署BI语义模型 942
         58.1  BI语义模型的含义 942
         58.2 开发环境 943
         58.3  使用PowerPivot创建
         BI语义模型 945
         58.4  用PowerPivot扩展BI
         语义模型 948
         58.4.1  在PowerPivot中创建KPI 948
         58.4.2  在PowerPivot中创建
         层次结构 950
         58.4.3  在PowerPivot中
         创建透视图 953
         58.5  把BI语义模型部署到
         SharePoint上 955
         58.6  在SharePoint 2010中
         管理PowerPivot工作簿
         数据的自动刷新 955
         58.7  使用SQL Server Data Tools
         创建BI语义模型 956
         58.8  用SQL Server Data Tools
         扩展BI语义模型 957
         58.9  把BI语义模型部署到
         Analysis Services实例上 959
         58.9.1  部署选项 959
         58.9.2  部署服务器选项 960
         58.9.3  DirectQuery选项 960
         58.10  小结 960
         第59章  创建和部署Power View
         报表 961
         59.1  Power View的要求 961
         59.1.1  服务器端的要求 961
         59.1.2  客户端的要求 961
         59.2  用Power View创建和
         部署报表 962
         59.2.1  创建连接文件库 963
         59.2.2  创建Report Data Source
         文件 963
         59.2.3  创建BI Semantic Model
         Connection文件 965
         59.2.4  用Power View创建报表 966
         59.3  部署Power View报表 973
         59.4  小结 974
      · · · · · ·     (
收起)