第1章 SQL Server基础 1
1.1 选择SQL Server 2000的版本 2
1.1.1 SQL Server 2000服务器版本说明 2
1.1.2 获得SQL Server 2000 3
1.2 安装SQL Server 2000 3
1.2.1 基本的先决条件 3
1.2.2 安装类型和选项 5
1.2.3 基本安装过程 7
1.2.4 理解升级过程 11
1.2.5 升级SQL Server 7.0 12
1.2.6 升级数据库 13
1.2.7 客户端安装 15
1.3 小结 15
第2章 服务器与客户端配置 16
2.1 可视化管理工具 17
2.1.1 SQL Server服务管理器 17
2.1.2 SQL Server企业管理器 17
2.1.3 SQL Server查询分析器 18
2.1.4 SQL Server网络管理工具 19
2.2 配置服务器 20
2.2.1 启动、暂停和停止SQL Server 20
2.2.2 注册服务器 23
2.2.3 配置网络连接 25
2.2.4 配置链接服务器 28
2.3 配置客户端 33
2.3.1 客户端Net-Library和网络协议 34
2.3.2 配置客户端Net-Library 35
2.3.3 配置ODBC数据源 37
2.4 SQL Server 2000中的安全和访问控制 39
2.4.1 SQL Server的登录认证 40
2.4.2 SQL Server认证模式的设置 41
2.4.3 管理SQL Server登录 42
2.4.4 SQL Server安全性管理的途径 44
2.5 小结 45
第3章 Transact-SQL设计工具:SQL Query Analyzer 46
3.2 打开SQL Query Analyzer 47
3.1 什么是SQL查询分析器 47
3.3 查询窗口 49
3.4 语句颜色与字体设置 50
3.5 创建新的查询 51
3.6 编辑查询 51
3.6.3 清除编辑器窗格 52
3.6.4 查找和替换文本 52
3.6.2 撤销错误操作 52
3.6.1 移动和复制文本 52
3.6.5 转到行号 53
3.6.6 使用书签 53
3.6.7 强制文本的大小写 53
3.6.8 添加和删除缩进 54
3.6.9 添加和删除注释 54
3.7 运行查询 54
3.7.1 在SQL查询分析器中执行SQL语句 54
3.7.3 取消操作时间过长的查询 55
3.7.4 在SQL查询分析器中解决错误 55
3.7.2 在SQL查询分析器中执行存储过程 55
3.7.5 在SQL查询分析器中返回结果集 56
3.8 使用模板 56
3.9 熟练使用对象浏览器 57
3.9.1 从对象浏览器向代码添加对象 57
3.9.2 从对象浏览器查询 58
3.9.3 从对象浏览器运行存储过程 59
3.9.4 从对象浏览器编辑对象 60
3.9.5 使用对象浏览器中的脚本功能 60
3.10 使用对象搜索功能 61
3.9.6 从对象浏览器设置扩展属性 61
3.11 小结 62
第4章 基本SQL语句 63
4.1 Transact-SQL语言概述 64
4.2 运算符 66
4.2.1 算术运算符 66
实例4-1 SELECT语句的应用 66
4.2.2 字符串运算符 67
4.2.3 比较运算符 67
实例4-2 运算符的优先等级 68
4.2.4 逻辑运算符 68
4.2.5 运算符优先级 68
实例4-3 包含括号的表达式求值 69
4.3.1 二进制数据类型 70
4.3 数据类型 70
4.3.2 字符数据类型 71
4.3.3 日期和时间数据类型 72
4.3.4 Unicode数据类型 73
4.3.5 数字数据类型 73
4.3.6 货币数据类型 74
4.3.7 特殊数据类型 75
4.3.8 用户自定义数据类型 76
4.4 函数 76
4.4.1 字符串函数 77
实例4-4 返回字符串的ASCII值 77
实例4-5 CHAR运用 78
实例4-6 LOWER函数应用 79
实例4-7 UPPER函数 80
实例4-8 使用STR转换数据 81
实例4-9 使用LTRIM删除起始空格 82
实例4-11 LEFT函数应用 83
实例4-10 使用RTRIM删除尾部空格 83
实例4-12 RIGHT函数的应用 84
实例4-13 SUBSTRING的使用 85
实例4-14 CHARINDEX的应用 86
实例4-15 PATINDEX运用 88
实例4-16 SOUNDEX使用 89
实例4-17 DIFFERENCE运用 90
实例4-18 QUOTENAME使用 91
实例4-19 REPLICATE函数的使用 91
实例4-20 REVERSE的使用 92
实例4-21 使用REPLACE函数 93
实例4-22 SPACE的应用 93
实例4-23 STUFF的使用 94
实例4-24 DATEADD的应用 95
4.4.2 日期时间函数 95
实例4-25 DATEDIFF的应用 97
实例4-26 DATENAME的应用 98
实例4-27 DATEPART的使用 99
实例4-28 DAY使用 100
实例4-29 GETDATE的使用 101
实例4-30 MONTH的使用 102
4.4.3 数学函数 103
实例4-31 YEAR的使用 103
实例4-32 数学函数的使用 104
4.4.4 转换函数 105
实例4-33 CAST和CONVERT函数的使用 106
4.4.5 系统函数 107
实例4-34 CONVERT函数的style选项 107
实例4-36 COALESCE的使用 108
实例4-35 APP_NAME的使用 108
实例4-37 COL_LENGTH的使用 109
实例4-38 COL_NAME的使用 110
实例4-40 DB_ID的使用 111
实例4-39 DATALENGTH的使用 111
实例4-41 DB_NAME的使用 112
实例4-42 ORMATMESSAGE的使用 113
实例4-43 GETANSINULL的使用 114
实例4-45 HOST_NAME的使用 115
实例4-44 HOST_ID的使用 115
实例4-47 IDENT_INCR的使用 117
实例4-46 IDENTITY的使用 117
实例4-48 IDENT_SEED的使用 118
实例4-49 INDEX_COL的使用 119
实例4-50 ISDATE的使用 120
实例4-52 ISNUMERIC的使用 121
实例4-51 SNULL的使用 121
实例4-53 NEWID的使用 122
实例4-54 NULLIF的使用 123
4.5.1 FROM子句 123
4.5 SELECT语句 123
4.5.2 WHERE子句 125
4.5.3 ORDER BY子句 126
实例4-55 FROM子句和WHERE子句的使用 126
实例4-56 ORDER BY子句的运用 127
4.5.4 GROUP BY和HAVING子句 128
实例4-57 GROUP BY子句的运用 129
实例4-58 HAVING子句的运用 130
4.5.5 COMPUTE和COMPUTE BY子句 130
实例4-59 选择列 131
4.6.1 简单查询 131
4.6 数据查询 131
实例4-60 在查询结果中添加列 132
实例4-61 WHERE子句的使用 133
实例4-62 DICTINCT的使用 133
实例4-63 IN的使用 134
4.6.2 嵌套查询 134
实例4-64 LIKE的使用 134
实例4-66 使用比较运算符连接嵌套查询 135
实例4-65 用IN连接嵌套查询 135
实例4-67 使用EXISTS的嵌套查询 135
实例4-68 用HAVING子句连接嵌套查询 136
4.7 批处理和流程控制语言 136
4.7.1 批处理 136
4.7.2 事务管理 137
实例4-69 IF...ELSE的使用 138
4.7.3 流程控制语言 138
实例4-70 BEGIN...ND的使用 139
实例4-71 CASE的使用 140
实例4-73 WAITFOR的使用 142
实例4-72 WHILE的使用 142
4.8 小结 144
第5章 数据库管理 145
5.1 数据库中的对象 146
5.1.1 事务日志 146
5.1.2 文件和文件组 147
5.2 数据库设计 147
5.2.1 创建数据库计划 148
5.2.2 数据库规范化 150
5.2.3 数据完整性 151
5.2.5 数据库性能的考虑 152
5.2.4 数据库的安全性 152
5.2.6 数据库的维护 153
5.2.7 启动数据库维护向导 154
5.3 数据库和事务日志管理 158
5.3.1 创建数据库及事务日志 158
实例5-1 用CREATE DATABASE创建数据库 163
5.3.2 修改数据库 164
5.3.3 删除数据库 164
5.4 数据库选项 165
5.5 创建备份设备 171
5.5.1 使用SQL Server企业管理器添加备份设备 172
5.5.2 使用sp_addumpdevice添加转储设备 173
实例5-2 添加磁盘备份设备 175
实例5-3 添加网络磁盘备份设备 175
5.6.1 使用SQL Server Enterprise Manager删除设备 176
5.6 删除设备 176
实例5-4 添加磁带备份设备 176
5.6.2 使用sp_dropdevice删除设备 177
5.7 小结 178
第6章 创建和管理表 179
6.1.1 列的属性 180
6.1.2 使用CREATE TABLE语句创建表 180
6.1 创建表 180
6.1.3 使用SQL Server企业管理器创建表 186
6.2 改变表的结构 187
6.2.1 使用Transact-SQL语句修改表 188
实例6-1 更改表以添加新列 195
实例6-2 使用UPDATE语句更改表 200
实例6-3 使用简单的INSERT语句 203
6.2.2 使用SQL Server企业管理器增加或删除列 203
6.3.2 查看表中的数据 204
6.3.1 查看表的属性 204
6.3 查看表 204
6.3.3 用sp_help查看表的信息 205
6.3.4 用系统存储过程查看表的约束 207
6.4.1 使用Transact-SQL语句删除表 209
6.4 删除表 209
实例6-4 使用DELETE语句删除表中的行 213
6.5 小结 214
6.4.2 使用SQL Server企业管理器删除表 214
第7章 索引 215
7.1 概述 216
7.2.1 使用Transact-SQL语句创建索引 219
7.2 创建索引 219
7.2.2 使用SQL Server企业管理器创建索引 225
实例7-1 创建索引 225
7.3 更改索引名称 229
7.3.1 使用Transact-SQL语句更改索引名称 229
7.3.2 使用企业管理器更改索引名称 231
7.4 删除索引 232
7.4.1 使用Transact_SQL语句删除索引 232
实例7-2 删除索引 233
7.4.2 使用企业管理器删除索引 234
7.5 维护索引 234
7.5.1 DBCC SHOWCONTIG语句 234
实例7-3 显示表的碎片信息 237
7.5.2 DBCC DBREINDEX语句 237
实例7-4 重建索引 239
7.5.3 使用索引优化向导 239
7.6 小结 241
第8章 视图 242
8.1 概述 243
实例8-1 引用视图 243
8.1.1 SQL视图 243
8.1.2 视图使用方案 245
8.2 创建视图 246
8.2.1 使用Transact-SQL语句创建视图 246
8.2.2 使用创建视图向导创建视图 249
8.3 显示视图 252
8.3.1 获取关于视图的信息 252
实例8-2 显示视图 253
8.3.2 查看由视图定义的数据 254
实例8-3 显示视图的相关性 255
8.3.3 显示视图的相关性 255
8.4 修改和重命名视图 256
8.4.1 修改视图 256
实例8-4 更改视图 258
8.4.2 重命名视图 261
8.5 删除视图 262
8.6 小结 264
第9章 游标 265
9.1 概述 266
9.2 游标模型 267
9.2.1 Transact-SQL游标 267
实例9-1 查看游标的特性 268
9.2.2 API服务器游标 269
9.2.4 默认的结果集 272
9.2.3 客户游标 272
9.3.1 逐行操作 273
9.3 适度使用游标 273
9.3.2 选择游标 274
9.3.3 游标成员、滚动和对修改的敏感度 278
9.3.4 块状游标 279
9.3.5 使用定位操作更改行 279
9.4 使用Transact-SQL游标 281
9.4.3 FETCH 285
9.4.6 Transact-SQL游标名称的作用域 288
9.5 游标锁定 290
9.6 游标并发 291
9.7 小结 293
第10章 存储过程和用户自定义函数 294
10.1 存储过程的定义 295
10.1.1 存储过程的概念 295
10.1.2 存储过程的优点 295
10.2 存储过程的创建 296
10.2.1 用CREATE PROCEDURE创建存储过程 296
实例10-2 创建存储过程2 299
实例10-1 创建存储过程1 299
10.2.2 使用企业管理器创建存储过程 300
10.3 管理存储过程 301
10.3.1 查看存储过程 301
10.3.2 修改和重命名存储过程 302
10.3.3 删除存储过程 303
10.3.4 执行存储过程 305
10.4 扩展存储过程 308
10.5 用户定义函数 309
10.5.1 创建用户自定义函数 310
10.5.2 修改和删除用户自定义函数 312
10.6 小结 313
第11章 触发器 314
11.1.1 触发器的概念及作用 315
11.1.2 触发器的优点 315
11.1 触发器的定义和种类 315
11.2 创建触发器 316
11.1.3 触发器的种类 316
11.2.2 用Transact-SQL语句创建触发器 317
11.2.1 用企业管理器创建触发器 317
实例11-1 创建一个触发器实例 321
11.3 触发器原理 321
11.4 INSTEAD OF触发器 322
11.3.2 删除表的功能 322
11.3.1 插入表的功能 322
11.4.1 INSTEAD OF INSERT触发器 323
11.4.2 INSTEAD OF UPDATE、INSTEAD OF DELETE触发器 325
11.4.3 INSTEAD OF触发器中的表达式和计算列 326
11.4.4 在INSTEAD OF触发器中使用text、ntext和image数据 329
11.4.5 用隐式和显式空值激活触发器 330
实例11-2 用空值和默认值测试触发器激活 330
11.5 查看、修改和删除触发器 331
11.5.1 查看触发器信息 331
11.5.2 修改触发器 333
实例11-3 创建并修改触发器 336
11.5.3 删除触发器 336
11.6 触发器应用 337
11.6.1 嵌套触发器的应用 337
实例11-4 使用递归触发器解决自引用关系 338
11.6.2 递归触发器 338
11.7 小结 340
第12章 数据库备份和恢复 341
12.1 备份和恢复概述 342
12.1.1 备份和恢复 342
12.1.2 数据库备份的类型 342
12.1.3 备份和恢复的策略 344
12.2 创建备份设备 346
12.2.1 用SQL Server企业管理器管理备份设备 346
实例12-1 创建一个磁盘备份设备 347
12.2.2 使用系统过程管理备份设备 347
12.3 数据库备份 348
12.3.1 用SQL Server企业管理器管理备份 348
实例12-2 创建远程磁盘备份设备 348
实例12-3 创建磁带备份设备 348
实例12-4 删除备份设备 348
12.3.2 用Transact-SQL命令备份数据库 350
实例12-5 完全备份pubs数据库 353
12.4 备份向导 353
12.5 恢复数据库 355
12.5.1 利用企业管理器恢复数据库 355
12.5.2 RESTORE命令进行恢复 356
12.5.3 部分数据库恢复 358
实例12-6 恢复数据库pubs至2000年4月1日前的状态 358
12.6 备份和恢复系统数据库 359
实例12-7 拆开pubs数据库 361
实例12-8 重新连接pubs数据库 361
12.7 本章小结 361
第13章 数据转换服务 362
13.1.1 数据转换服务简介 363
13.1 数据转换服务基本概念 363
13.1.2 DTS结构 363
实例13-1 使用DTS向导导出pubs数据库中的authors表 365
13.2 DTS导入/导出向导 365
实例13-2 利用DTS向导向数据库中导入一个文本文件 370
13.3 DTS Designer 371
13.3.1 创建DTS Designer包 371
13.3.2 添加连接 372
13.3.3 定义数据转换 373
13.3.4 数据转换任务属性设置 373
13.3.5 定义任务 376
13.4 本章小结 377
第14章 复制技术 378
14.1 复制的概述和术语 379
14.1.1 复制模型 379
14.1.2 复制代理 380
14.1.3 复制类型 381
14.1.4 复制数据的一致性 381
14.1.5 同步模式 382
14.1.6 复制的拓扑结构 383
14.2.1 创建服务器角色和分发数据库 385
14.2 配置复制 385
14.2.2 配置复制选项 387
14.2.3 删除复制配置信息 393
14.3 快照复制 394
14.3.1 快照复制概述 394
14.3.2 创建快照复制出版物 396
14.3.3 订购出版物 401
14.3.4 管理出版物 404
14.4 事务复制 405
14.4.1 事务复制的特点 405
14.4.2 事务复制的执行步骤 406
14.4.3 存储过程的复制 407
14.5 合并复制 407
14.5.1 合并复制的概述 407
14.5.2 合并复制的执行步骤 408
14.6.1 立即更新订购者 409
14.6 复制选项的规划 409
14.6.2 排队更新订购者 410
14.6.3 转换复制数据 411
14.6.4 代替同步伙伴 413
14.6.5 过滤复制数据 413
14.7 复制监视器 414
14.8 本章小结 415
第15章 人事考勤工资管理信息系统 416
15.1 系统分析 417
15.1.1 功能需求分析 417
15.1.2 数据需求分析 417
15.2 系统设计 419
15.2.1 数据模块设计 419
15.2.2 业务逻辑设计 420
15.2.3 功能模块设计 423
15.2.4 数据库设计 424
15.3.1 建立解决方案、工程项目 429
15.3 系统实现 429
15.3.2 实现通用数据访问组件 431
15.3.3 创建主窗体FormMain 435
15.3.4 创建主窗体菜单 437
15.3.5 人事管理模块 440
15.3.6 民族设置模块 454
15.3.7 日常考勤模块 457
15.3.8 发放工资模块 469
15.3.9 公司设置模块 472
15.3.10 部门管理模块 476
15.3.11 用户管理模块 483
15.3.12 用户级别设置模块 488
15.3.13 用户登录模块 490
15.4 小结 492