第一部分 基础知识 1
1.2 数据库系统的发展历史 2
1.1 概述 2
第1章 数据库系统简介 2
1.3.1 层次模型 3
1.3 数据库系统的模型和结构 3
1.3.3 关系模型 4
1.3.2 网状模型 4
1.4 数据库管理系统 5
第2章 SQL Server简介 6
2.1 Microsoft SQL Server的发展历史 7
2.2 Microsoft SQL Server的将来 8
2.3 Microsoft SQL Server和Internet 9
2.4 Microsoft SQL Server 7.0的新功能 10
2.4.1 在服务器管理方面的增强和新功能 11
2.5 Microsoft SQL Server功能介绍 13
2.4.2 在图形管理界面主面的增强和新功能 13
2.5.2 存储引擎 14
2.5.1 关系引擎 14
2.5.3 工具 15
2.5.5 桌面和灵活的系统 16
2.5.4 复制 16
2.5.7 Internet,Intranet和电子商务 17
2.5.6 数据仓库 17
2.5.9 与Microsoft BackOffice的集成 18
2.5.8 与Windows NT的集成 18
2.5.10 与Microsoft Visual Studio的集成 20
3.1.1 操作系统 21
3.1 服务器需求 21
第3章 SQL Server的环境 21
3.1.2.1 如何选择 22
3.1.2 微处理器 22
3.1.2.4 有多少能同时使用服务器的并行连接? 23
3.1.2.3 是使用服务器完成OLTP还是DSS应用呢? 23
3.1.2.2 买多少 23
3.1.2.6 除了主要处理SQL Server之外,服务器还有哪些事情? 24
3.1.2.5 使用的计算复杂程度如何? 24
3.1.3 硬盘空间 25
3.1.2.7 响应时间应该为多少? 25
3.1.4 内存 26
3.2 购买和配置一驱动器组 27
3.1.7 如何优先选择 27
3.1.5 磁带备份 27
3.1.6 网络软件 27
3.2.1 浏览RAID标准 28
3.2.2 推荐一:分离序列I/O 29
3.2.4.1 4个驱动器 30
3.2.4 如何应付较少的磁盘 30
3.2.3 推荐二:如有可能,使用硬盘驱动控制器控制RAID 30
3.3.1 使用什么样的文件系统 31
3.3 配置Windows NT 31
3.2.4.2 3个驱动器 31
3.2.4.3 2个盘 31
3.3.3 不使用屏幕保护 32
3.3.2 使用NTFS压缩怎么样? 32
第二部分 构造SQL Server7.0 33
4.1.1 SQL Server7安装特点 34
4.1 概述 34
第4章 安装SQL Server 7.0 34
4.1.2 安装SQL Server 7前的准备工作 35
4.1.3 SQL Server7的版本和安装类型 37
4.2 在Windows 9x上的安装SQL Server 7.0 38
4.2.2 系统要求 39
4.2.1 在Windows 9x上安装时的升级问题 39
4.2.3 在Windows 9x下的安装 41
4.3 在Windows NT中安装SQL Server 7.0 43
4.3.2 系统要求 44
4.3.1 在Windows NT上安装后升级的问题 44
4.3.3 在Windows NT下的实际安装 47
4.4 使用自定义安装SQL Server7.0 49
4.4.1 字符集/排序/Unicode检验 50
4.4.2 网络库 52
4.5.1 自动安装 54
4.5 远程自动安装SQL Server7.0 54
4.4.3 服务帐号 54
4.7 可能存在的问题和解决方法 55
4.6 卸载SQL Server 7.0 55
4.5.2 远程安装 55
第5章 安装SQL Mail和使用SQL Agent 57
5.2.1.1 为SQL Server Agent建立用户帐号 58
5.2.1 SQL Mail安装步骤概述 58
5.1 理解SQL Agent术语 58
5.2 安装SQL邮件 58
5.2.1.2 使用SQL Server Agent用户帐号配置邮件 62
5.2.1.3 使用用户帐号配置SQL Server Agent 63
5.2.1.4 配置SQL Server使用邮件 64
5.3 安装报警 65
5.2.1.5 配置SQL Server Agent使用邮件 65
5.3.2 定义操作员 66
5.3.1 安装条件 66
5.3.4 使用Alert Wizard 67
5.3.3 定义故障-保护操作员 67
5.3.5 用户连接示例 68
5.3.5 安装Performance报警 68
5.3.7 生成脚本! 71
5.4 使用工作(Jobs) 74
5.4.2 检查数据库选项 77
5.4.1 通知 77
5.5 数据库维护 80
5.4.3 建立脚本 80
5.5.2 关于数据库维护脚本(Database Maintenance Scripts) 81
5.5.1 使用数据库维护向导(Database Maintenance Wizard) 81
5.5.3 检查错误记录(Checking Error Logs) 89
5.5.5 备份策略 90
5.5.4 定期回收 90
5.5.6 测试你的恢复程序 91
6.1 升级时间 92
第6章 升级SQL Server 92
6.2 升级规划 93
6.4 升级工具和过程 94
6.3.3 从6.5版升级 94
6.3 升级版本 94
6.3.1 从4.2.1版升级 94
6.3.2 从6.0版升级 94
6.4.1 并行升级(单机) 95
6.5 复制和升级 99
6.4.2 计算机对计算机升级(双机) 99
6.6.2 hotfix类似于服务包 100
6.6.1 服务包Service pack7.0是缺陷修复集 100
6.6 升级的后续工作 100
7.1.1 常规(General)选项卡 101
7.1 选择配置选项 101
第7章 配置SQL Server 7.0 101
7.1.4 安全选项卡 103
7.1.3 处理器选项卡 103
7.1.2 内存选项卡 103
7.1.5.2 隐含事务 104
7.1.5.1 临时/延迟的条件检验 104
7.1.5 连接选项卡 104
7.1.5.5 ANSI去耦 105
7.1.5.4 ANSI警告 105
7.1.5.3 提交时关闭光标 105
7.1.5.13 加强分布式事务(MTS) 106
7.1.5.12 查询溢出时间(Query time out) 106
7.1.5.6 ANSI的空值(ANSI Null) 106
7.1.5.7 数学异常(Arithmetic Abort) 106
7.1.5.8 数学忽略(Arithmetic Ignore) 106
7.1.5.9 引号识别器(Quoted Identitier) 106
7.1.5.10 No Count 106
7.1.5.11 借助RPC使其他的SQL Server与当前SQL Server远程连接 106
7.1.7 数据库设置(Database Setting)选项卡 107
7.1.6 设置(Setting)选项卡 107
7.2.2 许可修改(Allow Updates) 108
7.2.1 临近屏蔽(Affinity Mask) 108
7.2 使用sp configure基于SQL的配置 108
7.2.8 默认的排序id(Default sortorder id) 109
7.2.7 Unicode locale ID选项 109
7.2.3 并行设计的成本阈值(Cost threshold for parallelism) 109
7.2.4 游标阈值(Cusor threshold) 109
7.2.5 Unicode比较风格(Unicode comparison style) 109
7.2.6 默认语言(Default language) 109
7.2.11 锁定(Locks) 110
7.2.10 缓存中的语言(Language in cache) 110
7.2.9 占空因数(Fill factor) 110
7.2.17 媒体保存(Media retention) 111
7.2.16 最大工作线程(Max worker threads) 111
7.2.12 最大async输入/输出(Max async IO) 111
7.2.13 最大并行方案数(Max degree of parallelism) 111
7.2.14 查询等待(Query wait) 111
7.2.15 最大文本复制量(Max text repl size) 111
7.2.22 优先级增加(Priority boost) 112
7.2.21 打开的对象(Open objects) 112
7.2.18 内存(Memory) 112
7.2.19 嵌套的触发器(Nested triggers) 112
7.2.20 网络包的大小(Network packets size) 112
7.2.28 资源超时(Resource timeout) 113
7.2.27 远程查询超时(Remote query timeout) 113
7.2.23 恢复间隔(Recovery interval) 113
7.2.24 远程访问(Remote access) 113
7.2.25 远程登录超时(Remote login timeout) 113
7.2.26 远程处理事务(Remote proc trans) 113
7.2.34 用户选择(User options) 114
7.2.33 用户连接(User Connections) 114
7.2.29 设置工作集大小(Set working set size) 114
7.2.30 显示高级配置选项(Show advanced options) 114
7.2.31 转速计速器(Spin counter) 114
7.2.32 时间限制(Time slice) 114
7.3.1 平衡网络信息量与文件服务器信息量 115
7.3 SQL Server的Windows NT配置 115
7.3.2 为其他的启动模式创建注册表的键值 116
7.3.3 为单用户模式添加一个新的键值 117
第三部分 管理和维护SQL Server 7.0 118
8.1.1 增加Microsoft Management Console Snap-Ins 119
8.1 微软管理控制台(SQL Server Enterprise Manager) 119
第8章 管理工具集 119
8.1.1.1 增加新的服务器组 120
8.1.1.2 SQL Server与外部工具的集成 121
8.1.2 SQL Server的Enterprise Manager功能 124
8.1.2.2 指定系统管理员密码 125
8.1.2.1 注册服务器 125
8.1.2.3 配置本地服务器 127
8.1.2.5 配置多重服务器环境 128
8.1.2.4 配置远程服务器 128
8.1.2.6 设置登录安全性 130
8.1.2.7 创建警告 133
8.1.2.8 管理和配置SQL Mail 135
8.1.2.10 为独立环境创建和安排作业 136
8.1.2.9 建立操作员 136
8.1.2.12 创建和管理复制情形 139
8.1.2.11 为多重服务器环境创建和安排作业 139
8.1.2.13 为SQL ServerEnterprise Manager设置轮询间隔 140
8.2 SQL Server Agent(代理器) 141
8.2.1 定义操作员 143
8.2.2 创建作业 145
8.2.3 创建警告 149
8.3 Query Analiyse(查询分析器) 158
8.2.4 多任务和多方案作业 158
8.3.1 分析器简介 159
8.3.2 配置查询分析器 160
8.3.3 设置查询视图选项 164
8.3.4 使用查询方格 165
8.3.5 分析查询执行方案 166
8.3.6 分析索引 169
8.4.1.1 关于域 170
8.4.1 英文查询环境的组成 170
8.4 Microsoft English Query(英文查询) 170
8.4.1.2 实体和关系的定义 171
8.4.1.3 考虑的问题 172
8.4.2 English Query(英文查询)域编辑器入门 173
8.4.2.1 定义实体 174
8.4.2.2 使用Autoname和Autotrait 176
8.4.2.3 使用高级实体属性 178
8.4.2.4 定义关系 179
8.4.3 使用测试应用工具(Test Application Tool) 182
8.4.3.1 运行Regression Test(恢复测试) 184
8.4.3.3 添加域命令 185
8.4.3.2 向字典添加单词 185
8.4.4 执行English Query(英文查询)工程 186
8.4.5 Question Builder(问题构建器)的使用 187
8.5.1 SQL Server Profiler(应用程序调试工具) 190
8.5 其它管理工具 190
8.5.1.1 SQL Server Profile Queue 191
8.5.1.3 锁定事件 192
8.5.1.2 跟踪事件的类别 192
8.5.1.7 存储过程事件 193
8.5.1.6 会话事件 193
8.5.1.4 杂项事件 193
8.5.1.5 对象事件 193
8.5.1.10 创建跟踪 194
8.5.1.9 事务事件 194
8.5.1.8 TSQL事件 194
8.5.1.11 使用已有的跟踪 195
8.5.2 SQL Server Performance Monitor(性能监视器) 196
8.5.1.12 跟踪输出文件 196
8.5.2.2 生成警告 197
8.5.2.1 启动SQL Server性能监视器 197
8.5.2.3 对象和计数器 200
8.5.2.6 从远程工作站运行性能监视器 201
8.5.2.5 需要连接到SQL Server的许可 201
8.5.2.4 性能因素 201
9.1.1 使用关系模型 202
9.1 数据库的设计 202
第9章 创建和管理数据库 202
9.1.1.1 什么是关系 203
9.1.1.2 行、列排序无关性 208
9.1.1.3 在一个关系中没有重复记录行 209
9.1.2 标准化 210
9.1.2.3 第三标准形式(3NF) 211
9.1.2.2 第二标准形式(2NF) 211
9.1.2.1 第一标准形式(1NF) 211
9.1.3.1 域集成 212
9.1.3 集成约束(Integrity Containts) 212
9.1.3.2 Entity集成 217
9.1.4.1 外部关键字的功用 220
9.1.4 引用集成 220
9.1.4.2 用户定义集成 224
9.2 创建和管理数据库 225
9.2.3 设计数据库文件 226
9.2.2 文件保存 226
9.2.1 数据库体系 226
9.2.4 创建数据库 227
9.2.5 更改数据库和添加文件组 228
9.3.1 表的定义 229
9.3 数据库的表、视图和索引 229
9.2.6 压缩数据库 229
9.3.2 基础知识 230
9.3.2.1 列名 231
9.3.2.2 数据类型 235
9.3.2.6 缺省值 236
9.3.2.5 允许空值 236
9.3.2.3 长度 236
9.3.2.4 精度和等级 236
9.3.3.2 标识(标识、标识基值、标识增量) 237
9.3.3.1 关键字 237
9.3.3 深层知识 237
9.3.3.3 警告!前面有难懂的东西! 239
9.3.3.4 GUID(IsRowGuid) 241
9.3.3.8 修改表 242
9.3.3.7 唯一约束 242
9.3.3.5 检查约束 242
9.3.3.6 外部关键字值 242
9.3.3.9 许可 243
9.3.4.3 方法 245
9.3.4.2 目的 245
9.3.4 视图 245
9.3.4.1 定义 245
9.3.4.4 示例 246
9.3.4.5 视图的可修改规则 247
9.3.5.1 索引类型 248
9.3.5 索引 248
9.4 数据库的触发器 249
9.3.5.3 创建索引 249
9.3.5.2 簇与非簇 249
9.4.2.3 工作规则和逻辑 250
9.4.2.2 数据库逻辑 250
9.4.1 客户/服务器模型 250
9.4.2 客户/服务器拓展:三层分区 250
9.4.2.1 用户接口 250
9.4.3.1 创建触发器 251
9.4.3 触发器 251
9.4.3.2 触发器的其他规则 255
9.4.3.3 示例 256
10.1 块拷贝程序(BCP) 266
第10章 传送数据 266
10.1.2 在哪儿运行BCP 267
10.1.1 谁可以运行BCP 267
10.1.4 实例 268
10.1.3 登记与不登记 268
10.1.5.5 /E 269
10.1.5.4 /c 269
10.1.5 基于文件方式的BCP 269
10.1.5.1 /6 269
10.1.5.2 /a packet size 269
10.1.5.3 /b batchsize 269
10.1.5.11 /k 270
10.1.5.10 /i inputfile 270
10.1.5.6 /e errfile 270
10.1.5.7 /F firstrow 270
10.1.5.8 /f formatfile 270
10.1.5.9 /h”hint[,?,n]” 270
10.1.5.23 /v 271
10.1.5.22 /U login_id 271
10.1.5.12 /L lastrow 271
10.1.5.13 /m maxerrors 271
10.1.5.14 /n 271
10.1.5.15 /o outputfile 271
10.1.5.16 /P password 271
10.1.5.17 /q 271
10.1.5.18 /r row_term 271
10.1.5.19 /S servername 271
10.1.5.20 /t field_term 271
10.1.5.21 /T 271
10.1.6.3 Type(类型) 272
10.1.6.2 # of columns 272
10.1.5.24 /w 272
10.1.6 格式文件 272
10.1.6.1 SQL Ver 272
10.1.6.5 Len 273
10.1.6.4 PrefixLen(前缀长度) 273
10.1.7 示例 274
10.1.6.8 Name 274
10.1.6.6 终止符 274
10.1.6.7 Table Col 274
10.1.7.1 列项对齐 275
10.1.7.2 改变列顺序 276
10.1.7.3 再调整格式 277
10.1.7.5.1 提取数据 278
10.1.7.5 略过列项 278
10.1.7.4 输出格式化的文件 278
10.1.9 空尾随字段 279
10.1.8 使用临时表 279
10.1.7.5.2 拷入数据 279
10.2.2 使用SQL Server Enterprise Manager的脚本 280
10.2.1 SQL脚本文件定义 280
10.2 数据库的录制 280
10.2.4 Data Transformation Services(DTS,数据转换服务) 282
10.2.3 Transaction-SQL脚本 282
10.2.4.1 使用DTS Import Wizard(使用DTS引入向导) 283
10.2.4.2 使用DTS Export Wizard 284
10.2.4.3 创建DTS包的其他方法 285
10.2.4.5 使用dtsrun应用 287
10.2.4.4 使用dtswiz应用 287
11.1.1 不顾麻烦使用多个数据库服务器的原因 289
11.1 概述 289
第11章 复制数据 289
11.1.2.2 在复制什么 290
11.1.2.1 谁在复制 290
11.1.2 什么是复制 290
11.1.3.1 复制的定义 291
11.1.3 基本的复制规则 291
11.1.2.3 何时进行复制 291
11.1.2.4 数据被复制到哪儿 291
11.1.4.1 快照复制 293
11.1.4 复制类型 293
11.1.4.3 合并事务 294
11.1.4.2 事务复制 294
11.1.4.4 合并复制的表设计 295
11.1.5 实际如何概述 297
11.1.6.1 分布器上有些什么 298
11.1.6 自定义复制 298
11.1.6.3 基于日志的复制 301
11.1.6.2 关于同步的研究 301
11.1.7.1 主关键字 304
11.1.7 关于数据库设计 304
11.1.7.3 不用于复制 305
11.1.7.2 其他的DRI、其他的索引和触发器 305
11.1.7.6 其他问题 306
11.1.7.5 如何将条文放到发布中 306
11.1.7.4 使用DRI建立脚本 306
11.2.1 安装分布数据库 307
11.2 建立复制 307
11.1.8 复制的拓扑结构的设计 307
11.2.1.3 建立分布数据库 308
11.2.1.2 磁盘空间检查 308
11.2.1.1 内存检查 308
11.2.1.4 检查你的进度 310
11.2.2.2 使用Transact-SQL建立接收器和发布数据库 311
11.2.2.1 使用SQL Enterprise Manager建立接收器 311
11.2.2 建立接收器和发布数据库 311
11.2.3 建立接收数据库 313
11.2.2.3 检查你的进度 313
11.2.3.2 不会如此快 314
11.2.3.1 现在要察看的内容 314
11.2.4.5 编辑条文 315
11.2.4.4 Synchronization选项卡 315
11.2.4 定义发布和条文 315
11.2.4.1 在SQL Enterprise Manager中建立发布 315
11.2.4.2 发布标题 315
11.2.4.3 定义一个条文 315
11.2.4.6 发布 318
11.3 管理复制 321
11.2.5 DBO的发布许可 321
11.3.1.1 使用sp addarticle建立条文 322
11.3.1 使用SQL保存工作 322
11.3.2 从发布数据库建立脚本 323
11.3.1.2 删除条文 323
11.3.2.1 发布 324
11.3.2.2 条文 325
11.3.3 使用你自己的复制保存程序 326
11.3.4 关于外部关键字的问题 328
11.3.5 监视复制和修改监视属性 329
11.3.5.1 监视发布器、用户历史以及用户对话细节 329
11.3.6.1 查看复制警告 330
11.3.6.2 完成复制安装 330
11.3.6 查找复制的故障 330
11.3.5.2 修改复制监视属性 330
11.3.6.3 日志读取器 331
11.3.6.4 分布任务 332
11.3.7 卸载发布 333
11.4 复制异类 333
11.4.2 如何复制到ODBC数据源 334
11.4.2.1 建立一个ODBC数据源 334
11.4.1 工作规则 334
11.4.2.4 在向Oracle复制中的问题 336
11.4.2.3 复制如何使用ODBC工作 336
11.4.2.5 远程ODBC驱动程序配置 336
11.4.2.5 使Oracle准备好接收复制 337
11.4.2.6 建立Oracle ODBC数据源 338
11.4.2.7 核实你的连接 339
11.4.2.9 建立一个ODBC推动接收 340
11.4.2.10 为ODBC复制使用保存程序 340
11.4.2.8 添加一个ODBC接收器 340
11.4.3 向一个不被支持的RDMS--SQL Server4.21复制 341
11.4.3.1 第1步:确保你能与SQL Server 4.21通信 341
11.4.3.2 第2步:为SQLServer42建立一个ODBC数据源 343
11.4.3.3 第3步:使用MS Query来确保恢复正常 343
11.4.3.5 第5步:查找任务的故障 344
11.4.3.6 第6步:测试基于记录的复制 344
11.4.3.4 第4步:将SQLServer42定义为一个接收器,用它接收发布 344
11.4.3.7 第7步:建立自定义复制程序 345
11.4.4 来自不同数据库的复制 345
12.1.1 数据仓库过程(Data Warehousing Process) 346
12.1 现述 346
第12章 微软的数据仓库框架技术 346
12.1.2 数据仓库体系结构 347
12.2 微软数据仓库框架 348
12.1.3 数据仓库组件 348
12.2.1 数据仓库框架组件 349
12.3.2 OLE DB的定义 350
12.3.1 利用COM对UDA建模 350
12.3 OLE DB:信息交换标准 350
12.3.3 定义ActiveX数据对象 351
12.4 Microsoft Repository:数据仓库的黏合剂 352
12.5 数据仓库的设计 352
12.6.1 可扩缩的和健壮的RDBMS 353
12.6 数据仓库的数据库 353
12.6.2 综合的OLAP分析能力 354
12.6.3 数据复制 355
12.7 导入、导出和转换数据 355
12.7.2 DTS的体系结构 356
11.3.2.3 使用Enterprise Manager 356
12.7.1 DTS的目标 356
12.7.3 DTS包 359
12.8.2 Microsoft English Query 360
12.8.1 Microsoft Office 360
12.8 分析、提交数据 360
12.8.3 第三方产品 361
12.9.2 向导 362
12.9.1 Microsoft Management Console(微软管理控制台) 362
12.9 系统管理 362
12.9.3 可视化的数据库图表结构 363
12.9.5 SQL Server Query Analyzer 364
12.9.4 SQL Server Profiler 364
12.9.7 SQL Server代理服务 365
12.9.6 Index Tuning Wizard(索引调整向导) 365
13.1.1 内存 367
13.1 自动和动态配置 367
第13章 数据库管理员的任务简化 367
13.1.2 锁定(Locks) 368
13.1.5 当恢复时数据库自动创建和改变 369
13.1.4 自动增长TempDB和启动重置 369
13.1.3 数据库文件自动扩展 369
13.1.7 配置选项的简化 370
13.1.6 Transact SQL版本兼容性级别 370
13.2 动态结构管理 372
13.2.3 唯一标识符数据类型和全局唯一标识符 373
13.2.2 修改视图、触发器和存储过程 373
13.2.1 删除列 373
14.1.1 登录 374
14.1 登录和授权 374
第14章 SQL Server 7.0的安全性 374
14.1.1.2 Windows NT授权(Windows NT Authentication) 375
14.1.1.1 SQL Server授权(SQL Server Authentication) 375
14.1.2 安全模式(Security Modes) 376
14.1.3 维护登录号 378
14.2 用户 380
14.1.3.3 SQL Server安装的登录号 380
14.1.3.1 修改口令 380
14.1.3.2 拒绝访问 380
14.4 用户角色 381
14.3 用户角色、NT小组和固定角色 381
14.5 预定义的角色 382
14.7 授予、拒绝和取消 383
14.6 应用角色 383
14.8.1 不可授权许可 384
14.8 许可(Permissions) 384
14.8.2 语句许可(Statement Permissions) 385
14.9 所属关系链 386
14.8.3 对象许可 386
14.10 对系统表授权 387
14.11 安全和互联网 390
14.12 关于安装用户和别名 391
15.1 更新统计 392
第15章 数据库的维护 392
15.2 数据库一致性检查器 393
15.2.2 DBCC UPDATEUSAGE 394
15.2.1 DBCC错误的修复技术 394
15.3.1 恢复可疑数据库 395
15.3 可疑的数据库 395
15.2.3 DBCC OPENTRAN 395
15.4 遵守标准 396
15.3.2 用RESTORE语句恢复可疑数据库 396
15.5.1 数据库备份 397
15.5 备份方法 397
15.5.3 事务日志备份 398
15.5.2 差分数据库备份 398
15.5.4 使用多个备份设备进行备份 400
15.5.6 备份/恢复磁带重启动能力 401
15.5.5 备份单个数据库文件或文件组 401
15.5.7 备用服务器备 402
第四部分 SQL语言参考 403
16.1 关于SQL 404
第16章 Transact-SQL语言 404
16.3 构造Transact-SQL 405
16.2 编辑和运行Transact-SQL的环境 405
16.5 执行一个查询:SELECT语句 406
16.4 开始查询 406
16.5.2 控制SELECT的输出 408
16.5.1 使用查询语句 408
16.5.3.1 SQL命令是对大小写敏感的 409
16.5.3 相关SQL语法的概要 409
16.5.3.3 逗号周围的空白格是可选的 410
16.5.3.2 SQL Server忽略空白格 410
16.5.4 ORDER BY简化 411
16.5.6 不是所有的SELECT语句都相同 412
16.5.5 下降排序 412
16.5.8 TOP关键字:减少结果集 413
16.5.7 特殊的关键字:保存唯一性 413
16.6.2 只有一个条件的WHERE子句 415
16.6.1 WHERE子句:基本语法 415
16.6 WHERE子句 415
16.6.3 有多个条件的WHERE子句 416
16.6.4 使用括号控制顺序 417
16.7.1 重命名列项 418
16.7 计算和重命名的列 418
16.7.2.1 在查询中使用常数 419
16.7.2 使用表达式 419
16.7.2.2 使用字符串函数 420
16.7.2.3 使用系统函数 421
16.8 GROUP BY和HAVING 422
16.8.1 WHERE与HAVING的区别 423
16.8.2.1 理解ROLLUP 424
16.8.2 CUBE和ROLLUP 424
16.8.2.2 理解CUBE 425
17.1.1 SQL介绍 428
17.1 SQL基础 428
第17章 标准SQL语言大全 428
17.1.2 使用SQL从表中取记录 429
17.1.3 使用ISQL执行SELECT查询 431
17.1.4 操作多个表 432
17.1.5 操作字段 434
17.1.6 排序查询结果 435
17.1.7 取出互不相同的记录 437
17.1.8 创建新表 438
17.2.1 建立索引 445
17.2 高级SQL 445
17.2.2 SQL核心语句 448
17.2.3 集合函数 451
17.2.4 其它常用的SQL表达式,函数,和过程 453
18.1 发展历史 465
第18章 ANSI SQL-92的介绍 465
18.1.2 越陷越深 466
18.1.1 标准的重要性 466
18.2.2 日期、时间和时间间隔 467
18.2.1 位变量(varbit)和位(n) 467
18.2 数据类型 467
18.3 关系领域的不司观点 468
18.2.3 国家标准的字符 468
18.3.3 目录 469
18.3.2 方案(schema) 469
18.3.1 表 469
18.5.1 记录行值构造器 470
18.5 数据检索区别 470
18.3.4 数据库 470
18.4 表列的修改 470
18.5.2.1 INTERSECT 471
18.5.2 集合运算及术语 471
18.5.2.3 OVERLAPS 472
18.5.2.2 EXCEPT 472
18.6 Transact-SQL优于SQL-92的方面 473
18.5.2.4 UNIQUE 473
18.7.2 多媒体的SQL:SQL/MM 474
18.7.1 面向对象的SQL 474
18.7 SQL-92标准之后的下一个标准:SQL 3 474
18.8 Transact-SQL的中值 475
18.7.3 描述时间:SQL/Temporal 475
第五部分 SQL Server 7.0的开发与实务 478
19.1.1 什么是保存程序 479
19.1 基本保存程序 479
第19章 使用Transact-SQL开发保存程序 479
19.1.3 运行一个保存程序 480
19.1.2 保存程序的应用划分以及它与你有关的原因 480
19.1.4.1 基本思想 481
19.1.4 使用CREATE PROCEDURE创建自己的保存程序 481
19.1.4.3 程序组合 482
19.1.4.2 在一个程序内使用SELECT 482
19.1.4.4 传递参数 485
19.1.4.5 封装的保存程序 491
19.1.4.6 WITH RECOMPILE 492
19.1.4.7 WITH ENCRYPTION 493
19.1.5 延迟的时间鉴别 494
19.1.4.8 FOR REPLICATION 494
19.2.2 如何安装扩展保存程序 495
19.2.1 什么是扩展保存程序? 495
19.2 创建扩展保存程序 495
19.2.5.1 基本思想和流 496
19.2.5 使用ODS创建XP 496
19.2.3 XP如何工作 496
19.2.4 OPEN Data Services(ODS) 496
19.2.5.2 将数据送回SQL Server 498
19.2.5.3 读参数 502
19.2.5.4 发送提示和错误消息 503
19.2.5.5 示例 504
19.2.6.1 完整的源代码 510
19.2.6 ODSTest.dll 510
20.1 Transact-SQL对OLE的支持 519
20.1.1 创建sp OACreate对象 519
第20章 使用OLE开发应用程序 519
20.1.3 sp OAMethod-执行方法 520
20.1.2 获得和设置属性--sp_OAGetProperty/sp_OASetProperty程序 520
20.1.4.1 结果代码 521
20.1.4 检索和显示结果错误信息 521
20.1.4.2 sp_displayoaerrorinfo 522
20.3.1.1 安装Tester对象 524
20.3.1 使用Tester对象 524
20.2 取消对象及停止共享OLE执行环境 524
20.2.1 sp_OADestroy 524
20.2.2 sp_OAStop 524
20.3 示例 524
20.3.1.2 使用对象 525
20.3.2 带有DROLEMail的E-mail和OLE 526
21.1 什么是SQL Distributed Management Objects(SQL-DMO) 532
第21章 使用SQL-DMO编程 532
21.2.2.2 获得版本信息 533
21.2.2.1 必要的处理 533
21.2 SQL-DMO对象 533
21.2.1 向Visual C++工程中添加SQL-DMO支持 533
21.2.2 Application对象 533
21.2.2.3 获得可用服务器的列表 534
21.2.3.2 稍微进行一些扩展 535
21.2.3.1 连接 535
21.2.3 SQLServer对象 535
21.3 执行查询和检查结果集 536
21.3.2.1 从结果集检索数据 537
21.3.2 QueryResults对象 537
21.3.1 ExecuteWithResult() 537
21.3.2.2 GetRangeString() 538
21.4.1 访问服务器的配置信息 539
21.4 使用SQL-DMO扩展SQL Server 539
21.4.2 使用保存程序 541
21.5 SPBrowser源代码 542
22.3 安装Snap-in 551
22.2 注册Snap-in控件 551
第22章 使用SQL-DMO-SECRETS Snap-In控件 551
22.1 Snap-in控件是做什么的 551
22.5.1 开始部分 554
22.5 代码讲述 554
22.4 Snap-in控件的基本结构 554
22.5.2 使对话成为控件的一部分 559
22.6.1 初始化、定大小和显示 561
22.6 CSnapInDlg--控件的核心 561
22.6.2 显示菜单 562
22.6.3 处理菜单命令 564
22.7.1 安装 568
22.7 执行你的SQL-CSQLWindowDlg 568
22.7.2 运行你的查询 570
23.1.1 可行性研究 572
23.1 基于WEB的现代企业管理信息系统的项目规划 572
第23章 项目规划 572
23.1.3 系统概要设计 574
23.1.2 系统分析 574
23.1.4 系统详细设计 576
23.1.5 系统开发计划安排 580
23.2.2 中旅公司建立《中华旅神旅游信息网》主要意义 582
23.2.1 中国中旅公司简介(略) 582
23.1.6 进行具体的项目开发 582
23.2 中华旅神旅游信息网的项目规划 582
23.2.4 《中华旅神旅游信息网》系统设计方案说明 583
23.2.3 《中华旅神旅游信息网》系统设计目标和设计原则 583
23.2.4.2 《中华旅神旅游信息网》网站首页设计与制作的内容: 584
23.2.4.1 《中华旅神旅游信息网》网站网页设计与制作的特点: 584
23.2.4.3 《中华旅神旅游信息网》网站网页设计总体框架 585
23.2.5.1 《中华旅神旅游信息网》数据库的设计 590
23.2.5 《中华旅神旅游信息网》数据库开发 590
23.2.5.4 数据库系统的总体设计: 591
23.2.5.3 《中华旅神旅游信息网》数据库开发功能概要说明: 591
23.2.5.2 《中华旅神旅游信息网》数据库开发技术特点 591
23.2.6 《中华旅神旅游信息网》系统开发工期预算 594
24.1 商品数据库系统的建立 595
第24章 电子商务开发应用实例 595
24.2 使用ASP访问SQL Server 7.0数据库的接口 598
24.2.1 系统操作界面 599
24.3 网上商城的商品发布系统的建立 599
24.2.2.1 源代码 600
24.2.2 添加商品信息 600
24.2.3.1 源代码 603
24.2.3 修改商品信息(这里只是以修改商品价格为例进行说明) 603
24.2.2.2 结果操作界面 603
24.2.3.2 结果操作界面 608
24.2.4.1 源代码 609
24.2.4 删除商品信息 609
24.2.4.2 结果操作界面 612
24.2.5.1 源代码Browse.asp 613
24.2.5 浏览商品发布结果 613
24.3 网上商城的购物系统的实现 614
24.2.5.2 浏览结果界面 614
24.3.1.1 源代码:shopping.asp 615
24.3.1 产品发布系统 615
24.3.2.1 源代码:Add.asp 623
24.3.2 购物清单的实现 623
24.3.1.2 产品发布界面 623
24.3.3.1 源代码:check.asp 626
24.3.3 购物车的实现 626
24.3.2.2 购物清单界面 626
24.3.3.2 购物车界面和其它操作结果 631
24.3.4.1 源代码:List.asp 635
24.3.4 购物结算清单的实现 635
24.3.5 其它相关源代码文件说明 644
24.3.4.2 购物结算结果清单界面 644
25.1.1 数据库移植中用到的SQL Server工具 647
25.1 将Access数据库移植到Microsoft SQL Server7.0 647
第25章 Access和Oracle数据库的开发移植 647
25.1.3 移植Microsoft Access查询 648
25.1.2 转移表和数据 648
25.1.3.4 Access查询类型的SQL Server移植选择与建议 649
25.1.3.3 视图(Views) 649
25.1.3.1 事务处理SQL脚本程序(Transact-SQL scripts) 649
25.1.3.2 存储过程(Stored procedures) 649
25.1.5 移植Microsoft Access查询到事务处理SQL语句 650
25.1.4 移植Microsoft Access的查询到存储过程和视图 650
25.1.6.1 使用参数 651
25.1.6 其他设计上的考虑 651
25.1.6.3 检查SQL Server 652
25.1.6.2 嵌套查询 652
25.1.7 SQL SERVER和Access查询语法 653
25.1.6.4 连接你的应用程序 653
25.2.2 概述 655
25.2.1 开发和应用程序平台 655
25.2 把Oracle数据库移植到Microsoft SQL Server 7.0 655
25.2.2.1 SQL语言扩展 656
25.2.4.1 数据库的定义 657
25.2.4 结构和术语 657
25.2.2.2 ODBC 657
25.2.2.3 OLE DB 657
25.2.3 本文的组织方式 657
25.2.4.2 物理和逻辑存储结构(Physical and Logical Storage Structures) 658
25.2.4.4 标记数据(Striping Data) 659
25.2.4.3 在一个文件组中备份和恢复个别表和表的设置 659
25.2.4.6 备份和恢复数据 660
25.2.4.5 事务日志和自动恢复(Transaction Logs and Automatic Recovery) 660
25.2.4.8 数据库安全性和角色(Database Security and Roles) 661
25.2.4.7 网络 661
25.2.5 安装和配置Microsoft SQL Server 664
25.2.6 定义数据库对象 665
25.2.6.1 数据对象标识符 666
25.2.6.2 修饰表名 667
25.2.6.4 表和索引存储参数 669
25.2.6.3 创建表 669
25.2.6.5 用SELECT语句创建表 670
25.2.6.6 视图 671
25.2.6.7 索引 672
25.2.6.8 使用临时表 676
25.2.6.9 使用Unicode数据 677
25.2.6.10 用户定义数据类型 678
25.2.6.12 对象级许可 679
25.2.6.11 Microsoft timestamp列 679
25.2.7 加强数据完整性和商业规则 680
25.2.7.4 增加和清除约束 681
25.2.7.3 主键和唯一列 681
25.2.7.1 实体完整性(Entity Integrity) 681
25.2.7.2 为约束命名 681
25.2.7.5 生成连续的数字值 683
25.2.7.7 DEFAULT和CHECK约束 684
25.2.7.6 域完整性 684
25.2.7.8 Nullability 685
25.2.7.9 引用完整性 686
25.2.7.12 存储过程 687
25.2.7.11 用户定义的完整性 687
25.2.7.10 外部键 687
25.2.7.13 延迟存储过程的执行 690
25.2.7.15 触发器(Triggers) 691
25.2.7.14 指定存储程序中的参数 691
25.2.8.1 事务 693
25.2.8 事务、锁定和并行 693
25.2.8.2 锁定和事务孤立 695
25.2.8.3 改变缺省的锁定行为 696
25.2.8.6 锁定升级 698
25.2.8.5 表级别的锁定 698
25.2.8.4 SELECT…FOR UPDATE 698
25.2.9.1 远程事务 699
25.2.9 死锁 699
25.2.9.3 两步提交处理 700
25.2.9.2 分布事务 700
25.2.10.2 SELECT statements语句 701
25.2.10.1 SELECT和数据操作声明 701
25.2.10 SQL语言支持 701
25.2.10.3 INSERT语句 702
25.2.10.4 UPDATE语句 704
25.2.10.6 TRUNCATE TABLE语句 706
25.2.10.5 DELETE语句 706
25.2.10.9 行合计和计算子句 707
25.2.10.8 锁定被请求的行 707
25.2.10.7 在identity和timestamp列中操作数据 707
25.2.10.10 连接子句(Join clauses) 708
25.2.10.12 读取和修改BLOBs 709
25.2.10.11 用SELECT语句做表名 709
25.2.10.13 函数 710
25.2.10.14 比较操作符 717
25.2.10.15 模式匹配 718
25.2.10.16 流控制(Control-of-Flow)语言 719
25.2.11 实现游标 725
25.2.11.1 声明一个游标 726
25.2.11.3 抽取数据 727
25.2.11.2 打开一个游标 727
25.2.11.5 游标示例 728
25.2.11.4 关闭一个游标 728
25.2.12.3 SET语句 729
25.2.12.2 SQL Server Profiler 729
25.2.12 调试SQL语句 729
25.2.12.1 SQL Server Query Analyzer(SQL Server查询分析器) 729
25.2.13 使用ODBC 730
25.2.12.4 查询优化 730
25.2.13.2 ODBC结构 731
25.2.13.1 推荐的转换策略 731
25.2.13.4 可卷动游标 733
25.2.13.3 服务器游标 733
25.2.13.6 数据类型映射 735
25.2.13.5 一个连接上的多个活动语句 735
25.2.13.9 Date、Time、和Timestamp值 737
25.2.13.8 外部连接(Outer Joins) 737
25.2.13.7 ODBC扩展SQL(ODBC Extended SQL) 737
25.2.13.11 SQL方言翻译 738
25.2.13.10 调用存储过程 738
25.2.13.12 手工提交模式 739
25.2.14.1 嵌入的SQL 740
25.2.14 移植应用程序 740
25.2.14.2 开发者2000(Developer 2000)和第三方应用程序 742
25.2.15 数据库示例 743
25.2.14.3 互联网应用程序 743
25.2.15.1 示例大学应用程序 744
25.2.15.3 运行提供的脚本 745
25.2.15.2 示例应用程序和代码引用 745
第六部分 SQL Server7.0的系统封装性 747
26.1.1 SQL Server系统目录的特点 748
26.1 初步观察 748
第26章 SQL Server7.0的系统表 748
26.1.2 系统表的分类 749
26.1.3 整数ID 750
26.1.5 查询位标志 751
26.1.4 使用整数字段标志 751
26.1.6 伪动态的SQL 752
26.2 关于基本的系统表 754
26.2.1.1 关于sysobjects的帮助 755
26.2.1 sysobjects 755
26.2.1.2 在查询中使用sysobjects 756
26.2.1.3 sysobjects的伪动态的SQL 759
26.2.2 Sysindexes 760
26.2.1.4 sysobjects的其他用途 760
26.2.2.1 读取索引信息 762
26.2.3 sysindexes的DBO视图 763
26.2.2.2 系统表的主关键字 763
26.2.4 syscolumns 764
26.3.1 syscomments 765
26.3 数据库目录的其他部分 765
26.3.2.1 无登录用户 767
26.3.2 sysusers 767
26.3.2.2 错误登录的用户 769
26.3.2.3 不允许用户进入缺省数据库 769
26.3.3 sysdepends 770
26.3.4 sysreferences 770
26.4 系统目录 770
26.4.1 sysdatabases 771
26.4.2 sysprocesses 771
26.4.3 sysxlogins 773
26.4.3.1 查找一个登录 773
26.4.3.2 对所有的登录进行操作 773
26.4.3.3 修改登录的名字 774
26.4.3.4 查找NULL或显而易见的口令 774
26.4.3.5 查找没有缺省数据库的登录 775
第27章 SQL Server7.0的DBCC 776
27.1 一般性介绍DBCC 776
27.1.1 DBCC的许可 778
27.1.2 跟踪标志 778
27.1.3 DBCC帮助 780
27.2 查找缺陷 780
27.2.1 CHECKDB 781
27.2.2 运行CHECKDB 781
27.2.2.1 如何修复被破坏的表 782
27.2.3 CHECKTABLE(table_name[,NOINDEX|index_id]) 783
27.2.2.3 当系统表被破坏时要做的事情 783
27.2.4 CHECKCATALOG[(database_name)] 783
27.2.2.2 使用CHECKDB的修复选项 783
27.2.5 CHECKALLOG[(database_name[,NOINDEX])] 784
27.2.6 重建索引 784
27.2.7 SHOWCONTIG(table_id,[index_id]) 785
27.2.8 DBCC DBREINDEX 786
27.2.9 修改sysindexes 787
27.2.10.1 INPUTBUFFER 788
27.2.10.2 OPENTRAN 788
27.2.10 在出现故障后查找故障 788
27.2.11 内存检查 789
27.2.11.1 DBCC PERFMON 789
27.2.11.2 DBCC MEMUSAGE 792
27.2.11.3 DBCC PROCCACHE 796
27.2.11.4 pinning表 797
27.2.12 DBCC CHECKFILEGROUP 797
28.1.1 BACKUP 799
28.1 使用的文件和目录 799
28.1.2 Data 799
第28章 SQL Server7.0内部数据保存结构 799
28.1.2.1 初始的数据库文件大小 802
28.1.2.2 缩短和增大文件,断页辨别 803
28.1.2.3 日志或.ldf,文件 807
28.1.2.4 数据库文件或.mdf文件 809
28.1.2.5 FTDATA 812
28.1.3 JOBS 815
28.1.4 LOG 815
28.1.5 REPLDATA 816
28.2 b树索引 816
28.3 分布统计 817
28.3.1 UPDATE STATISTICS 817
28.3.2 察看统计结果 818
28.4 锁定 819
第29章 SQL Server 7.0的优化器 822
29.1 优化器使用的统计数据 823
29.1.1 使用sp_autostats程序 823
29.1.2 使用UPDATE STATISTICS语句 824
29.1.3 使用DBCC SHOW_STATISTICS查看统计数据 825
29.1.4 重新编译应用保存程序 827
29.2 查看执行方案 827
29.3 使用优化器提示 831
29.4 并行查询 833
29.5 故障检修员的检查清单 834
29.6 帮助你跟踪问题的工具 835