第1章 安装前的准备工作 1
1.1 设备 1
引言 1
1.2 数据库 2
1.3 字符集与排序次序 3
1.4 建议的系统配置 4
1.5 Microsoft SQL Server的安装位置 5
1.6 主数据库中的内容 6
1.6.1 主数据库 6
1.6.4 Tempdb 7
1.6.2 Pubs数据库 7
1.6.3 模型数据库 7
1.6.5 Msdb数据库 8
1.7 关于内存的问题 8
1.8 使用的安全保护模型 9
1.9 清理 9
1.10 协议 10
1.11 服务 10
1.14 安装Microsoft SQL Server的硬件 11
1.13 设备的默认位置 11
1.12 SQL邮件客户 11
1.15 小结 13
1.16 实用指南 13
第2章 安装Microsoft SQL Server 19
2.1 安装生产数据服务器 19
2.1.1 SQL Server服务器A(基础级) 19
2.1.2 SQL Server服务器B(中档) 20
2.1.3 SQL Server服务器C(高档) 21
2.2.1 创建SQL Exec帐号 22
2.2 安装SQL Server之前 22
2.2.2 创建另一个帐号 23
2.2.3 设置一个邮件客户软件 23
2.3 小结 24
2.4 实用指南 24
2.4.1 SQL Server的安装过程 24
2.4.2 安装后的问题 36
第3章 开发与生产 38
3.1 建立开发环境 38
3.2 第三方工具 38
3.4 服务器级参数 39
3.3 数据建模 39
3.4.2 Tempdb in RAM 40
3.4.3 Sort Pages 40
3.4.4 Resource Timeout 40
3.4.1 User Connections 40
3.4.5 Read-Ahead Optimization 41
3.4.6 Priority Boost 41
3.4.7 Max Worker Threads 41
3.4.8 Lock Escalation参数 42
3.4.9 Fill Factor 42
3.5.2 注册表式的表 43
3.5 应用程序参数 43
3.5.1 DBCC PINTABLE 43
3.5.3 列表式的表 44
3.6 安装脚本 44
3.6.1 例子服务器安装脚本 44
3.6.2 生成对象的脚本 46
3.6.3 第三方管理 47
3.7 对象的传输 48
3.8 数据的传输 49
3.8.1 BCP 50
3.8.3 DBArtisan 51
3.8.2 INSERT/SELECT 51
3.9 权限 52
3.10 小结 52
3.11 实用指南 53
3.11.1 注册服务器 53
3.11.2 在服务器之间移动对象 54
3.11.3 警告信息 55
3.11.4 陷阱 55
4.1.1 两阶段提交 56
4.1.2 复制一致性 56
第4章 复制 56
4.1 数据分布模型 56
4.2 术语 57
4.2.1 出版者 57
4.2.2 订阅者 57
4.2.3 分发服务器 57
4.2.4 事务日志 57
4.2.6 横向分割 58
4.2.7 纵向分割 58
4.2.5 同步 58
4.2.8 文章 59
4.2.9 出版物 59
4.2.10 推 59
4.3.1 出版者服务器 60
4.3.2 订阅者服务器 60
4.3.3 分发服务器 60
4.3 服务器角色 60
4.2.11 拉 60
4.4 配置模型 61
4.4.1 考虑的因素 61
4.4.2 中心出版者 62
4.4.3 带远程分发的中心出版者 63
4.4.4 出版订阅者 64
4.4.5 中心订阅者 65
4.4.6 单个表的多个出版者 66
4.5.3 复制分发进程 68
4.5.2 同步进程 68
4.5.4 通信故障 68
4.5.1 日志阅读进程 68
4.5 事件与进程 68
4.6 复制的要求 69
4.6.1 内存 69
4.6.2 工作目录 69
4.6.3 相同的字符集 69
4.6.4 协议 69
4.6.5 信任 69
4.7 小结 70
4.6.9 主关键字 70
4.6.8 用户连接数 70
4.6.7 SQL Executive 70
4.6.6 磁盘空间 70
4.8 实用指南 71
4.8.1 安装分发数据库 71
4.8.2 设置出版物选项 72
4.8.3 创建出版物和文章 72
4.8.4 设置订阅选项 75
4.8.5 订阅出版物 75
第5章 结构化查询语言(SQL) 77
5.1 ANSI兼容的SQL 77
5.3.1 Authors 78
5.2 语法 78
5.3 Puhs数据库 78
5.3.2 Sales 79
5.3.3 Titleauthor 79
5.4 SELECT语句 80
5.5 WHERE子句 83
5.6 ORDER BY子句 84
5.7 GROUP BY子句 85
5.8 连接条件 88
5.9 别名 90
5.10 聚集和函数 91
5.10.1 SUM() 91
5.10.2 MAX() 91
5.10.3 MIN() 91
5.10.4 AVG() 91
5.10.5 COUNT() 91
5.10.11 SUBSTRING() 92
5.10.9 DATEPART() 92
5.10.10 SOUNDEX() 92
5.10.7 GETDATE() 92
5.10.6 CONVERT() 92
5.10.8 DATEDLFF() 92
5.10.12 UPPER() 93
5.10.13 CHARINDEX() 93
5.10.14 RTRIM() 93
5.11 系统函数 93
5.11.1 ISNULL() 93
5.11.2 USER_ID() 93
5.11.3 USER_NAME() 93
5.12 计算值 94
5.11.4 DATALENGTH() 94
5.11.5 COL_LENGTH() 94
5.13 优化器提示 95
5.14 子查询 97
5.15 联合 98
5.16 INSERT语句 98
5.16.1 标识列 100
5.16.2 存储过程 100
5.16.3 触发器 100
5.17 UPDATE语句 101
5.18 DELETE语句 101
5.19 批 102
5.20 光标 104
5.21 小结 106
5.22 实用指南 107
5.22.1 模式修改 107
5.22.2 备份数据 107
5.22.3 重新命名要修改的对象 107
5.22.4 生成对象的脚本 108
5.22.6 清理环境 109
5.22.5 转换和插入旧数据 109
5.22.7 关于约束 110
第6章 存储过程 111
6.1 一致的数据操作 111
6.1.1 输入存储过程 111
6.1.2 建立标准 111
6.1.3 获取数据 112
6.1.4 修改数据 113
6.2 模块化程序设计 113
6.3 减少客户端处理 113
6.5 存储过程的调用 114
6.4 网络传输 114
6.6 查询优化器 115
6.7 查询计划 115
6.8 参数 116
6.9 变量 116
6.10 NT服务器注册表 118
6.11 维护 119
6.12 返回代码 119
6.13 其他规则 120
6.14 嵌套与递归 120
6.15 系统存储过程 121
6.16. 自定义存储过程 124
6.17 外部存储过程 125
6.18 远程存储过程 126
6.19 启动存储过程 127
6.20 生产之前 127
6.21 小结 127
6.22 存储过程实用指南 128
6.22.1 字符串分析 128
6.22.2 冗余代码 128
6.22.3 减少网络流量 129
6.22.4 在存储过程中调用存储过程 130
7.1 创建视图的语法 132
第7章 视图 132
7.2 规范化的数据 133
7.3 数据划分 133
7.3.1 纵向划分 134
7.3.2 横向划分 134
7.6 安全保护 135
7.7 更新 135
7.5 计算值 135
7.4 多重表 135
7.8 基础表 136
7.9 性能 136
7.10 限制 136
7.11 小结 137
7.12 视图实用指南 137
7.12.1 确定列需要 137
7.12.2 数据的划分和合并 138
7.12.3 检查索引覆盖范围 138
7.12.4 修改 140
8.1 数据完整性 143
第8章 触发器 143
8.2 语法 144
8.3 业务规则 145
8.4 权限 145
8.5 嵌套 146
8.6 关于触发器的其他问题 146
8.7 虚表 146
8.7.3 虚表使用 147
8.8 全局变量 147
8.7.2 Deleted表 147
8.7.1 Inserted表 147
8.9 INSERT触发器 148
8.10 UPDATE触发器 148
8.11 DELETE触发器 149
8.12 限制 149
8.13 多行问题 150
8.14 性能 151
8.15 小结 151
8.16 触发器实用指南 151
8.16.1 删除外部关键字约束 152
8.16.2 定义业务规则 153
8.16.4 图形式地表示触发器激发次序 154
8.16.3 标识子记录 154
8.16.5 写测试脚本 155
8.16.6 检查titleAuthor表 157
8.16.7 创建触发器 158
8.16.8 测试触发器 159
第9章 规则、默认值、约束和用户自定义数据类型 162
9.1 规则 162
9.1.1 规则的创建 163
9.1.2 规则的绑定 163
9.1.3 规则的修改 164
9.1.4 规则的删除 164
9.2 默认值 164
9.2.1 默认值的创建 165
9.2.2 默认值的绑定 165
9.3.1 主关键字 166
9.3 约束 166
9.3.2 唯一性 166
9.2.3 默认值的修改 166
9.2.4 默认值的删除 166
9.3.3 外部关键字约束 167
9.3.4 默认值约束 167
9.3.5 检查约束 167
9.4 用户自定义数据类型 167
9.4.1 实体定义 167
9.4.2 Create Table语句 168
9.4.3 依赖性 169
9.5 小结 169
9.6.2 创建脚本 170
9.6 实用指南 170
9.6.1 定义域 170
9.6.3 打印用户自定义数据类型列表 172
9.6.4 建造表结构 173
9.6.5 维护和查错 173
第10章 错误代码 175
10.1 Microsoft SQL Server中的错误 175
10.2 是方法还是疯狂 175
10.3 服务包 175
10.5 小结 176
10.6 实用指南 176
10.4 研究 176
10.6.1 查询/连接错误 177
10.6.2 服务器配置错误 178
10.6.3 连接错误 182
10.6.4 事务日志错误 183
10.6.5 表索引错误 184
第11 章 性能微调与优化 189
11.1 什么是性能 190
11.2 瓶颈 190
11.3 性能监视器 191
11.4 Windows NT 192
11.5 数据模型 193
11.6 应用程序设计 193
11.7 建立基线 194
11.8 尽可能简单 194
11.9 SQL Server跟踪标志 195
11.10 SQL Trace 195
11.11 SQL Probe 196
11.13 实用指南 198
11.13.1 使用性能监视器 198
11.12 小结 198
11.13.2 使用SQL Trace 201
第12章 新闻组和Internet 204
12.1 访问Internet 204
12.2 浏览器 205
12.3 功能 205
12.4 搜索引擎 207
12.5 知识库 208
12.6 服务包和修补程序 210
12.7 TechNet CD-ROM 210
12.9 新闻组 211
12.8 Microsoft SQL Server联机手册 211
12.10 小结 213
12.11 实用指南 213
12.11.1 安装新闻阅读器 213
12.11.2 配置源新闻服务器 217
12.11.3 订阅新闻组 218
12.11.4 预选项 220
12.11.5 新闻组礼仪 223
附录A 课程、培训和咨询 225
附录B Pubs示例数据库 228