第1章 SELECT 1
1.1 基本的SELECT语句 1
1.1.1 从所有行中选择指定列 1
1.1.2 从所有行中选择所有列 2
1.2 使用基本WHERE子句的SELECT查询 3
1.2.1 使用WHERE子句指定结果集中返回的行 3
1.2.2 组合搜索条件 3
1.2.3 否定搜索条件 5
1.2.4 保持WHERE子句无歧义 5
1.3 使用运算符和表达式 6
1.3.1 在数据范围搜索中使用BETWEEN 7
1.3.2 使用比较运算符 7
1.3.3 检测NULL值 8
1.3.4 返回基于一组值的行 8
1.3.5 LIKE和通配符的结合使用 9
1.4 对结果排序 10
1.4.1 使用ORDER BY子句 10
1.4.2 在排序的结果中使用TOP关键字 12
1.5 数据分组 13
1.5.1 使用GROUP BY子句 13
1.5.2 使用GROUP BY ALL 15
1.5.3 使用HAVING选择性地查询分组的数据 15
1.6 SELECT子句技术 16
1.6.1 使用DISTINCT消除重复值 17
1.6.2 在聚合函数中使用DISTINCT 17
1.6.3 使用列别名 18
1.6.4 使用SELECT创建脚本 18
1.6.5 执行字符串拼接 19
1.6.6 使用SELECT创建逗号分隔的列表 20
1.6.7 使用INTO子句 21
1.7 子查询 22
1.8 从多个数据源查询 23
1.8.1 使用内联结 23
1.8.2 使用外联结 24
1.8.3 使用交叉联结 25
1.8.4 实现自联结 26
1.8.5 使用衍生表 27
1.8.6 使用UNION组合结果集 28
1.9 使用APPLY来为每行调用表值函数 29
1.9.1 使用CROSS APPLY 29
1.9.2 使用OUTER APPLY 31
1.10 数据源高级技术 32
1.10.1 使用TABLESAMPLE来返回随机行 32
1.10.2 使用PIVOT来把单列值转化为多列和聚合数据 33
1.10.3 使用UNPIVOT规范化数据 36
1.10.4 使用EXCEPT和INTERSECT返回不重复的或匹配的行 37
1.11 汇总数据 39
1.11.1 使用WITH CUBE汇总数据 39
1.11.2 使用GROUPING和WITH CUBE 40
1.11.3 使用WITH ROLLUP来汇总数据 41
1.12 提示 41
1.12.1 使用联结提示 42
1.12.2 使用查询提示 43
1.12.3 使用表提示 45
1.13 公共表表达式 46
1.13.1 使用非递归的公共表表达式 47
1.13.2 使用递归的公共表表达式 49
第2章 INSERT、UPDATE和DELETE 53
2.1 INSERT 53
2.1.1 向表中插入一行 53
2.1.2 使用默认值插入行 54
2.1.3 显式向一个IDENTITY列插入值 55
2.1.4 在表中插入拥有uniqueidentifier列的行 56
2.1.5 使用INSERT...SELECT语句插入行 57
2.1.6 调用存储过程插入数据 58
2.2 UPDATE 60
2.2.1 更新一行 60
2.2.2 根据FROM和WHERE子句更新行 61
2.2.3 更新大值数据类型的列 62
2.2.4 使用OPENROWSET和BULK插入或更新图片文件 63
2.3 DELETE 65
2.3.1 删除行 66
2.3.2 截断表 67
2.4 OUTPUT子句 68
2.5 使用TOP分块修改数据 70
第3章 事务、锁定、阻塞和死锁 72
3.1 事务控制 72
3.1.1 使用显式事务 73
3.1.2 使用DBCC OPENTRAN显示最早的活动事务 76
3.2 锁定 77
3.3 事务、锁定和并发 80
3.4 阻塞 85
3.4.1 找到并解决阻塞进程 85
3.4.2 使用SET LOCK TIMEOUT 88
3.5 死锁 88
3.5.1 使用跟踪标志位找出死锁 89
3.5.2 设置死锁优先级 91
第4章 表 93
4.1 表基础 93
4.1.1 创建表 95
4.1.2 为既有表添加列 96
4.1.3 修改列定义 96
4.1.4 创建计算列 97
4.1.5 删除表中的列 98
4.1.6 报告表信息 99
4.1.7 删除表 99
4.2 排序规则基础 99
4.2.1 查看排序规则元数据 100
4.2.2 指定列的排序规则 101
4.3 键 101
4.3.1 创建有主键的表 102
4.3.2 为既有表增加主键约束 103
4.3.3 创建一个有外键引用的表 103
4.3.4 为既有表增加外键 104
4.3.5 创建递归外键引用 105
4.3.6 允许外键的级联修改 106
4.4 代理键 107
4.4.1 在创建表的时候使用IDENTITY属性 108
4.4.2 使用DBCC CHECKIDENT来查看和纠正IDENTITY种子值 109
4.4.3 使用ROWGUIDCOL属性 110
4.5 约束 111
4.5.1 创建唯一约束 111
4.5.2 为既有表增加UNIQUE约束 112
4.5.3 使用CHECK约束 113
4.5.4 为既有表增加CHECK约束 114
4.5.5 禁止和启用约束 114
4.5.6 在表创建时使用DEFAULT约束 116
4.5.7 为既有表增加DEFAULT约束 116
4.5.8 从表删除约束 117
4.6 临时表和表变量 117
4.6.1 为批处理的多次查找使用临时表 118
4.6.2 创建表变量来保存临时结果集 119
4.7 管理超大型表 120
4.7.1 实现表分区 122
4.7.2 检测数据在分区中的位置 124
4.7.3 增加新的分区 125
4.7.4 移除分区 127
4.7.5 把分区移动到不同的表 128
4.7.6 移除分区函数和分区方案 129
4.7.7 把表放入文件组 130
第5章 索引 132
5.1 索引预览 132
5.1.1 创建表索引 134
5.1.2 在非键列上强制唯一性 136
5.1.3 创建组合索引 136
5.1.4 定义索引列排序方向 137
5.1.5 查看索引元数据 138
5.1.6 禁用索引 139
5.1.7 删除索引 139
5.1.8 使用DROP_EXISTING改变既有索引 140
5.2 控制索引创建的性能和并发性 140
5.2.1 在Tempdb中创建临时索引 141
5.2.2 控制索引创建的并发执行计划 141
5.2.3 在索引创建过程中允许用户表访问 141
5.3 索引选项 142
5.3.1 使用索引INCLUDE 142
5.3.2 使用PAD_INDEX和FILLFACTOR 143
5.3.3 禁用页和/或行索引锁定 144
5.4 管理超大型索引 145
5.4.1 在文件组上创建索引 145
5.4.2 实现索引分区 145
第6章 全文搜索 147
6.1 全文索引和全文目录 147
6.1.1 创建全文目录 147
6.1.2 创建全文索引 148
6.1.3 修改全文目录 150
6.1.4 修改全文索引 151
6.1.5 删除全文目录 153
6.1.6 删除全文索引 153
6.1.7 获取全文目录和全文索引的元数据 153
6.2 基本搜索 154
6.2.1 使用FREETEXT来搜索全文索引的列 155
6.2.2 使用CONTAINS来搜索单词 155
6.3 高级搜索 156
6.3.1 使用CONTAINS和通配符来搜索 156
6.3.2 使用CONTAINS来搜索变形匹配 157
6.3.3 使用CONTAINS根据词的相邻搜索结果 158
6.4 排名搜索 158
6.4.1 根据含义返回排名搜索结果 158
6.4.2 根据权值返回排名搜索结果 159
第7章 视图 161
7.1 普通视图 161
7.1.1 创建基本视图 162
7.1.2 查询视图定义 163
7.1.3 数据库视图报表 164
7.1.4 刷新视图定义 165
7.1.5 修改视图 165
7.1.6 删除视图 166
7.1.7 使用视图修改数据 166
7.2 视图加密 167
7.3 索引视图 168
7.3.1 创建索引视图 168
7.3.2 强制优化器为索引视图使用索引 170
7.4 分区视图 171
第8章 SQL Server函数 176
8.1 聚合函数 176
8.1.1 返回平均值 176
8.1.2 返回行总数 177
8.1.3 找出表达式中的最小和最大值 178
8.1.4 返回值的和 178
8.1.5 使用统计聚合函数 178
8.2 数学函数 179
8.3 字符串函数 181
8.3.1 把字符值转化为ASCII以及把ASCII转回字符 182
8.3.2 返回整数和字符Unicode值 182
8.3.3 获取字符串中另一个字符串的起始位置 182
8.3.4 使用通配符找到一个字符串中另一个字符串的起始位置 183
8.3.5 检测字符串相似度 183
8.3.6 获取字符串最左和最右部分 184
8.3.7 检测字符串中的字符数或者字节数 185
8.3.8 把字符串的一部分替换成另一个字符串 185
8.3.9 把字符串填充到字符串中 186
8.3.10 把字符值转化为小写、大写以及合适的大小写 186
8.3.11 移除前导和尾部空格 188
8.3.12 重复一个表达式N次 189
8.3.13 重复一个空格N次 189
8.3.14 逆序输出表达式 189
8.3.15 返回表达式的一块 190
8.4 处理NULL 190
8.4.1 替换NULL为替代值 190
8.4.2 使用ISNULL进行灵活的搜索 191
8.4.3 返回表达式列表中第一个非NULL值 192
8.4.4 当两个表达式相等的时候返回NULL值,否则返回第一个表达式 192
8.5 日期函数 193
8.5.1 返回当前日期和时间 194
8.5.2 增加或减少日期值 194
8.5.3 找出两个日期的差 195
8.5.4 显示日期一部分的字符串值 196
8.5.5 使用DATEPART显示日期一部分的整数值 196
8.5.6 使用YEAR、MONTH和DAY显示日期部分的整数值 197
8.6 使用Convert和Cast转换数据类型 197
8.6.1 转换数据类型 198
8.6.2 进行数据转换 198
8.6.3 计算表达式是日期还是数字 199
8.7 排名函数 200
8.7.1 使用递增行号 200
8.7.2 根据排名返回行 201
8.7.3 根据无间隔排名返回行 202
8.7.4 使用NTILE 203
8.8 使用系统函数检测服务器、数据库以及连接级别的配置 204
8.8.1 使用SQL Server的每周第一天设置 204
8.8.2 查看当前会话使用的语言 204
8.8.3 查看和设置当前连接锁超时设置 205
8.8.4 显示当前存储过程上下丈的嵌套级别 205
8.8.5 返回当前SQL Server实例名和SQL Server版本 206
8.8.6 返回当前连接的会话ID (SPID) 206
8.8.7 返回打开事务的数量 206
8.8.8 获取之前语句影响的行 207
8.8.9 使用系统统计函数 208
8.8.10 显示数据库和SQL Server设置 209
8.8.11 返回当前数据库ID和名称 210
8.8.12 返回数据库对象名和ID 210
8.8.13 返回当前用户会话的应用程序和主机 210
8.8.14 获取当前用户和登录名上下文 211
8.8.15 查看用户连接选项 211
8.9 IDENTITY和uniqueidentifier函数 212
8.9.1 返回最后一个标识值 212
8.9.2 返回标识列的种子和增量值 213
8.9.3 创建新的uniqueidentifier值 213
第9章 条件处理、流控制和游标 215
9.1 条件处理 215
9.1.1 使用CASE来计算单个输入表达式 215
9.1.2 使用CASE来计算布尔表达式 217
9.1.3 使用IF...ELSE 218
9.2 流控制 219
9.2.1 使用RETURN 219
9.2.2 使用WHILE 221
9.2.3 使用GOTO 223
9.2.4 使用WAITFOR 224
9.3 游标 225
第10章 存储过程 229
10.1 存储过程基础 229
10.1.1 创建基本的存储过程 230
10.1.2 创建带参数的存储过程 231
10.1.3 使用OUTPUT参数 233
10.1.4 修改存储过程 234
10.1.5 删除存储过程 235
10.1.6 在SQL Server启动时自动执行存储过程 235
10.1.7 报告存储过程元数据 237
10.1.8 存储过程文档 237
10.2 存储过程安全 238
10.2.1 加密存储过程 238
10.2.2 使用EXECUTE AS来指定过程的安全上下文 239
10.3 重新编译和缓存 241
10.3.1 每次存储过程执行时重新编译 241
10.3.2 清空过程缓存 242
第11章 用户定义函数和类型 244
11.1 UDF基础 244
11.1.1 创建标量用户定义函数 244
11.1.2 创建内联用户定义函数 248
11.1.3 创建多语句用户定义函数 249
11.1.4 修改用户定义函数 252
11.1.5 查看UDF元数据 254
11.1.6 移除用户定义函数 254
11.2 从UDF获益 254
11.2.1 使用标量UDF来维护可重用的代码 255
11.2.2 为交叉引用的自然键值使用标量UDF 256
11.2.3 使用多语句UDF替代视图 259
11.3 UDT基础 261
11.3.1 创建和使用用户定义类型 261
11.3.2 找出使用用户定义类型的列和参数 263
11.3.3 删除用户定义类型 264
第12章 触发器 266
12.1 DML触发器 266
12.1.1 创建AFTER DML触发器 267
12.1.2 创建INSTEAD OF DML触发器 270
12.1.3 使用DML触发器和事务 273
12.1.4 根据修改的列控制DML触发器 275
12.1.5 查看DML触发器元数据 275
12.2 DDL触发器 276
12.2.1 创建审核数据库级别的事件的DDL触发器 277
12.2.2 创建审核服务器级别的事件的DDL触发器 279
12.2.3 查看DDL触发器元数据 279
12.3 管理触发器 281
12.3.1 修改触发器 281
12.3.2 启用和禁止表触发器 281
12.3.3 限制触发器嵌套 283
12.3.4 控制触发器递归 283
12.3.5 设置触发器触发次序 284
12.3.6 删除触发器 286
第13章 CLR集成 288
13.1 CLR概述 288
13.2 什么时候(不)使用程序集 289
13.3 CLR对象概述 290
13.4 创建CLR数据库对象 291
13.4.1 启用SQL Server 2005的CLR支持 291
13.4.2 为CLR存储过程写程序集 291
13.4.3 把程序集编译成DLL文件 294
13.4.4 把程序集载入SQL Server 294
13.4.5 创建CLR存储过程 295
13.4.6 创建CLR标量用户定义函数 296
13.4.7 创建CLR触发器 299
13.5 管理程序集 301
13.5.1 查看程序集元数据 301
13.5.2 修改程序集权限 301
13.5.3 从数据库移除程序集 301
第14章 XML 303
14.1 XML和相关技术 304
14.2 使用原生XML 305
14.2.1 创建XML数据类型列 305
14.2.2 插入XML数据到列 306
14.2.3 使用架构验证XML数据 307
14.2.4 获取XML数据 309
14.2.5 修改XML数据 311
14.2.6 使用XML索引 312
14.3 在XML文档与关系型数据之间进行转换 314
14.3.1 使用FOR XML 314
14.3.2 使用OPEN XML 317
第15章 Web服务 320
15.1 Web服务技术 320
15.2 HTTP端点 321
15.2.1 创建HTTP端点 323
15.2.2 管理HTTP端点安全 326
15.2.3 修改HTTP端点 327
15.2.4 移除HTTP端点 328
15.2.5 保留命名空间 328
15.3 创建使用Web服务的.NET客户端 329
第16章 错误处理 334
16.1 系统定义和用户定义的错误消息 334
16.1.1 查看系统错误信息 334
16.1.2 创建用户定义错误消息 335
16.1.3 删除用户定义错误消息 337
16.2 使用RAISERROR 337
16.3 使用TRY...CATCH 339
16.3.1 旧风格的错误处理 340
16.3.2 使用TRY...CATCH进行错误处理 342
16.3.3 不重编写存储过程来应用TRY...CATCH 343
16.3.4 嵌套调用TRY...CATCH 344
第17章 主体 347
17.1 Windows级别的主体 347
17.1.1 创建Windows登录名 348
17.1.2 查看Windows登录名 349
17.1.3 修改Windows登录名 349
17.1.4 删除Windows登录名 351
17.1.5 拒绝Windows用户或用户组的SQL Server访问 351
17.2 SQL Server级别的主体 352
17.2.1 创建SQL Server登录名 353
17.2.2 查看SQL Server登录名 354
17.2.3 修改SQL Server登录名 354
17.2.4 删除SQL登录名 356
17.2.5 管理服务器角色成员 356
17.2.6 报告固定服务器角色信息 357
17.3 数据库级别的主体 358
17.3.1 创建数据库用户 359
17.3.2 报告数据库用户信息 360
17.3.3 修改数据库用户 360
17.3.4 从数据库删除数据库用户 361
17.3.5 修复孤立的数据库用户 361
17.3.6 报告固定数据库角色信息 363
17.3.7 管理固定数据库角色成员 364
17.3.8 管理用户定义的数据库角色 365
17.3.9 管理应用程序角色 367
第18章 安全对象和权限 370
18.1 权限总览 370
18.2 服务器范围的安全对象和权限 373
18.3 数据库范围的安全对象和权限 375
18.4 架构范围的安全对象和权限 377
18.4.1 管理架构 380
18.4.2 管理架构的权限 381
18.5 对象的权限 382
18.6 管理权限访问安全对象范围 385
18.6.1 检测当前连接的安全对象的权限 385
18.6.2 通过安全对象范围报告主体的权限 387
18.6.3 改变安全对象所有权 389
18.6.4 允许SQL登录名访问非SQL Server的资源 391
第19章 加密 393
19.1 通过通行短语加密 393
19.2 主密钥 395
19.2.1 备份及还原服务主密钥 395
19.2.2 创建、重新生成以及删除数据库主密钥 397
19.2.3 备份及还原数据库主密钥 397
19.2.4 从数据库主密钥删除服务主密钥加密 398
19.3 非对称密钥加密 399
19.3.1 创建非对称密钥 400
19.3.2 查看当前数据库中的非对称密钥 400
19.3.3 修改非对称密钥的私钥密码 401
19.3.4 使用非对称密钥对数据进行加密和解密 401
19.3.5 删除非对称密钥 403
19.4 对称密钥加密 404
19.4.1 创建对称密钥 404
19.4.2 查看当前数据库中的对称密钥 405
19.4.3 改变对称密钥加密方式 405
19.4.4 使用对称密钥进行加密和解密 406
19.4.5 删除对称密钥 409
19.5 证书加密 410
19.5.1 创建数据库证书 410
19.5.2 查看数据库中的证书 411
19.5.3 备份和还原证书 411
19.5.4 管理证书的私钥 412
19.5.5 使用证书加密和解密 413
第20章 Service Broker 416
20.1 示例场景:在线书店 417
20.2 创建基本的Service Broker应用程序 417
20.2.1 启用数据库的Service Broker活动 418
20.2.2 创建加密用的数据库主密钥 418
20.2.3 管理消息类型 419
20.2.4 创建约定 420
20.2.5 创建队列 421
20.2.6 创建服务 423
20.2.7 启动对话 424
20.2.8 查询队列中传入的消息 426
20.2.9 检索并响应消息 426
20.2.10 结束会话 428
20.3 创建用来处理消息的存储过程 430
20.4 远程服务器Service Broker的实现 432
20.4.1 启用传输安全模式 435
20.4.2 启用对话安全模式 437
20.4.3 创建路由和远程服务绑定 439
20.5 事件通知 441
第21章 配置和查看SQL Server的选项 444
第22章 创建和配置数据库 448
22.1 创建、修改和删除数据库 448
22.1.1 使用默认配置创建数据库 448
22.1.2 查看数据库信息 449
22.1.3 使用文件选项创建数据库 450
22.1.4 使用用户定义文件组创建数据库 452
22.1.5 设置数据库用户访问 454
22.1.6 重命名数据库 456
22.1.7 删除数据库 457
22.1.8 分离数据库 457
22.1.9 附加数据库 459
22.2 配置数据库选项 460
22.2.1 查看数据库选项 460
22.2.2 配置ANSI SQL选项 461
22.2.3 配置自动选项 463
22.2.4 创建或修改允许外部访问的数据库 464
22.2.5 使用非服务器默认排序规则创建或改变数据库 465
22.2.6 配置游标选项 466
22.2.7 启用日期相关性优化 467
22.2.8 修改数据库参数化行为 468
22.2.9 为事务启用读取一致性 470
22.2.10 配置数据库恢复模式 472
22.2.11 配置页验证 473
22.3 控制数据库访问和拥有关系 475
22.3.1 改变数据库状态为联机、离线或紧急状态 475
22.3.2 改变数据库拥有者 476
22.4 管理数据库文件和文件组 477
22.4.1 为既有的数据库添加数据文件或日志文件 477
22.4.2 从数据库删除数据或日志文件 478
22.4.3 重新分配数据或事务日志文件 479
22.4.4 改变文件的逻辑名称 480
22.4.5 增加数据库丈件的大小和修改它的增长选项 481
22.4.6 为既有的数据库添加文件组 482
22.4.7 设置默认文件组 482
22.4.8 删除文件组 483
22.4.9 使数据库或文件组为只读 484
22.5 查看和管理数据库空间使用 485
22.5.1 查看数据库空间使用情况 485
22.5.2 收缩数据库或数据库文件 486
第23章 数据库完整性和优化 490
23.1 数据库检查 490
23.1.1 使用DBCC CHECKALLOC检查磁盘空间分配结构的一致性 491
23.1.2 使用DBCC CHECKDB检查所有数据库的分配和结构完整性 492
23.2 表和约束 494
23.2.1 使用DBCC CHECKFILEGROUP检查文件组中所有表的分配和结构完整性 494
23.2.2 使用DBCC CHECKTABLE检查表和索引视图的数据完整性 496
23.2.3 使用DBCC CHECKCONSTRAINTS检查表的完整性 498
23.2.4 使用DBCC CHECKCATALOG检查系统表的一致性 499
23.3 索引管理 500
23.3.1 重建索引 500
23.3.2 索引碎片整理 502
第24章 维护数据库对象和对象依赖 504
24.1 数据库对象维护 504
24.1.1 修改用户创建的数据库对象的名称 504
24.1.2 修改对象的架构 506
24.2 对象依赖关系 506
24.2.1 显示数据库对象依赖关系的信息 506
24.2.2 查看对象定义 507
第25章 数据库镜像 509
25.1 上下文中的数据库镜像 509
25.2 数据库镜像架构 510
25.3 设置数据库镜像 511
25.3.1 创建镜像端点 512
25.3.2 备份和还原主体数据库 515
25.3.3 创建数据库镜像会话 517
25.4 设置总结 519
25.5 运行数据库镜像 520
25.5.1 改变运行模式 520
25.5.2 进行故障转移 521
25.5.3 暂停或继续镜像会话 522
25.5.4 停止镜像会话和删除端点 522
25.6 镜像和配置选项 523
25.6.1 监视镜像状态 523
25.6.2 减少故障转移的时间 524
25.6.3 配置连接超时时限 524
第26章 数据库快照 526
26.1 快照基础 526
26.1.1 创建和查询数据库快照 526
26.1.2 删除数据库快照 528
26.1.3 从数据库快照恢复数据 528
第27章 链接服务器和分布式查询 531
27.1 链接服务器基础 531
27.1.1 为另一SQL Server实例创建链接服务器 532
27.1.2 配置链接服务器属性 533
27.1.3 查看链接服务器信息 534
27.1.4 删除链接服务器 534
27.2 链接服务器登录名 535
27.2.1 添加链接服务器登录名映射 535
27.2.2 查看链接登录名 536
27.2.3 删除链接服务器登录名映射 536
27.3 执行分布式查询 537
27.3.1 在链接服务器上执行分布式查询 537
27.3.2 创建和使用引用4部分组成的链接服务器名的别名 538
27.3.3 使用OPENQUERY执行分布式查询 539
27.3.4 使用OPENROWSET执行即席的查询 540
27.3.5 使用OPENROWSET BULK选项从文件中读取数据 541
第28章 性能调优 544
28.1 查询性能技巧 545
28.2 捕捉和估计查询性能 546
28.2.1 使用SQL Server Profiler捕捉高持续时间的查询 546
28.2.2 使用Sys.dm_exec_requests捕捉执行的查询 549
28.2.3 查看查询的图形化执行计划 550
28.2.4 使用T-SQL命令查看估计的查询执行计划 554
28.2.5 强制SQL Server 2005使用查询计划 556
28.2.6 查看执行运行时信息 558
28.2.7 查看性能统计信息和缓存的查询计划 560
28.3 统计信息 562
28.3.1 手动创建统计信息 562
28.3.2 更新统计信息 563
28.3.3 生成及更新所有表的统计信息 564
28.3.4 查看统计信息 565
28.3.5 删除统计信息 566
28.4 索引调优 566
28.4.1 显示索引碎片 567
28.4.2 显示索引使用情况 570
28.4.3 使用数据库引擎优化顾问 571
28.5 杂项技术 575
28.5.1 使用执行动态SQL的另一种方法 576
28.5.2 不修改应用程序的SQL去应用提示 578
第29章 备份与恢复 582
29.1 创建备份和恢复计划 582
29.2 备份 584
29.2.1 执行基本的完整备份 585
29.2.2 命名和描述备份和媒体 588
29.2.3 配置备份保持期 589
29.2.4 条带化备份集 590
29.2.5 使用命名的备份设备 590
29.2.6 镜像备份集 592
29.2.7 执行事务日志备份 593
29.2.8 使用COPY ONLY备份集 595
29.2.9 执行差异备份 595
29.2.10 备份单个丈件或文件组 596
29.2.11 执行部分备份 598
29.2.12 查看备份元数据 599
29.3 还原数据库 601
29.3.1 从完整备份还原数据库 601
29.3.2 从事务日志备份还原数据库 605
29.3.3 从差异备份还原数据库 607
29.3.4 还原文件或文件组 608
29.3.5 执行部分(PARTIAL)还原 609
29.3.6 还原页面 611
索引 612