标题：循序渐进SQLServer2005入门.进阶与应用实例
适用人群
本书面向实用，内容覆盖广泛，讲解由浅入深，适用于数据库管理人员、数据库开发人员、系统维护人员、数据库初学者及其他数据库从业人员，也可以作为各大中专院校相关专业的参考用书和相关培训机构的培训教材。
作者简介
张洪举，微软公司最有价值专家（MVP）微软中文社区MVP技术专栏作家。MicrosoftVisualFoxPro9.0测试小组成员。拥有10多年的数据库产品应用开发经历，尤其是在多层架构的面向对象系统分析设计、数据库分析设计、商业智能系统分析设计等方面，积累了丰富的项目经验。著有：《VisualFoxPro6.0～9.0解决方案与范例大全》、《VisualFoxPro程序设计参考手册》、《VisualFoxPro软件开发模式与应用案例》、《专家门诊——VisualFoxPro开发答疑160问等》。
编辑推荐
融合资深专家多年工作实践的经验和心得，涵盖了SQLSever2005开发、分析和管理等方面的热点问题。
注重技术原理与实际应用的高度融合，通过循序渐进的内容组织和大量来自工作现场的应用案例，帮助读者快速掌握和应用SQLServer2005数据库技术。
目录
第1部分　基础篇
第1章　SQLServer2005概述　2
1.1　SQLServer发展简史　2
1.2　安装SQLServer2005　3
1.2.1　32位和64位SQLServer2005共同的硬件、软件要求　3
1.2.2　32位SQLServer2005的硬件、软件要求　5
1.2.3　64位SQLServer2005的硬件、软件要求　6
1.2.4　安装SQLServer　7
1.3　SQLServer2005的网络体系结构　13
1.3.1　SQLServer的客户/服务器架构　13
1.3.2　SQLServer支持的网络协议　14
1.3.3　连接到SQLServer数据库引擎　15
1.4　SQLServer2005的数据库体系结构　21
1.4.1　数据库　22
1.4.2　对象　23
1.5　SQLServer2005数据平台的组件构成　26
1.6　SQLServer2005的管理工具　27
1.6.1　SQLServerManagementStudio器　27
1.6.2　SQLServerBusinessIntelligence器DevelopmentStudio　27
1.6.3　SQLServerProfiler器　29
1.6.4　SQLServerConfiguration器Manager　29
1.6.5　SQLServer外围应用配置器　30
1.6.6　数据库引擎优化顾问　30
1.6.7　命令提示实用工具　31
第2章　SQLServer2005的新增功能　32
2.1　对企业数据管理的增强　32
2.1.1　在易管理性方面的增强　32
2.1.2　在高可用性方面的增强　33
2.1.3　在可伸缩性方面的增强　34
2.1.4　在安全性方面的增强　35
2.2　对提高开发人员生产效率的增强　35
2.2.1　扩展的语言支持　36
2.2.2　改进的开发工具　37
2.2.3　在扩展性方面的增强　37
2.3　在商业智能方面的增强　40
2.3.1　端到端的集成商业智能平台　41
2.3.2　IntegrationServices器　41
2.3.3　AnalysisServices器　42
2.3.4　ReportingServices器　42
第2部分　操作篇
第3章　Transact-SQL语言简介　45
3.1　Transact-SQL语言的类型　45
3.1.1　DDL语句　45
3.1.2　DML语句　46
3.1.3　编程和流控制语句　46
3.1.4　批处理Transact-SQL语句　49
3.2　Transact-SQL的语法规则和元素　49
3.2.1　Transact-SQL的语法约定　49
3.2.2　Transact-SQL的语法元素　50
3.3　常量和变量　54
3.3.1　常量　54
3.3.2　变量　56
3.4　运算符　57
3.4.1　算术运算符　57
3.4.2　赋值运算符　58
3.4.3　位运算符　59
3.4.4　比较运算符　59
3.4.5　逻辑运算符　60
3.4.6　字符串串联运算符　60
3.4.7　一元运算符　61
3.5　常用函数　61
3.5.1　聚合函数　61
3.5.2　配置函数　62
3.5.3　游标函数　63
3.5.4　日期和时间函数　64
3.5.5　数学函数　65
3.5.6　数据类型转换函数　66
3.5.7　字符串函数　68
3.5.8　文本和图像函数　71
第4章　数据库及常用对象管理　72
4.1　数据库管理　72
4.1.1　创建数据库　72
4.1.2　修改数据库　79
4.1.3　删除数据库　85
4.2　架构管理　86
4.2.1　创建架构　86
4.2.2　修改架构　88
4.2.3　移动对象到一个新架构中　88
4.2.4　删除架构　89
4.3　表管理　89
4.3.1　数据页　89
4.3.2　区　90
4.3.3　表分区　90
4.3.4　创建表　91
4.3.5　管理表值　97
4.3.6　修改已存在表　111
4.3.7　查看表的属性信息　113
4.3.8　重命名和删除表　114
4.4　视图管理　115
4.4.1　创建视图　115
4.4.2　修改视图　119
4.4.3　删除和重命名视图　120
4.5　索引管理　121
4.5.1　索引的类型　121
4.5.2　创建索引　121
4.5.3　修改索引　131
4.5.4　删除索引　133
4.5.5　使用数据库引擎优化顾问　134
4.6　列约束和规则　137
4.6.1　使用约束　137
4.6.2　使用规则　139
第5章　查询和更改数据库数据　141
5.1　基本查询　141
5.1.1　基本的SELECT语句语法　141
5.1.2　使用选择列表　143
5.1.3　使用FROM子句　146
5.1.4　使用WHERE子句筛选行　153
5.1.5　使用GROUPBY子句进行数据分组　156
5.1.6　使用HAVING子句从分组后结果中筛选行　157
5.1.7　使用ORDERBY子句进行排序　157
5.2　使用子查询　158
5.2.1　在外部查询的选择列表中使用子查询　158
5.2.2　使用IN的子查询　158
5.2.3　使用比较运算符的子查询　159
5.2.4　使用通过ANY、SOME或ALL修改的比较运算符　159
5.2.5　使用EXISTS的子查询　160
5.2.6　使用多层嵌套子查询　161
5.3　使用联接　161
5.3.1　使用内部联接　161
5.3.2　使用外部联接　162
5.3.3　使用交叉联接　164
5.3.4　使用嵌套联接　165
5.4　操作结果集　166
5.4.1　使用UNION运算符组合结果集　166
5.4.2　使用EXCEPT和INTERSECT对结果集执行联接操作　167
5.4.3　与其他Transact-SQL语句一起使用UNION、EXCEPT和INTERSECT　169
5.4.4　使用公用表表达式　169
5.4.5　汇总数据　172
5.5　修改表数据　174
5.5.1　插入数据　174
5.5.2　更新数据　176
5.5.3　删除数据　178
5.6　使用事务保持数据的完整性　178
5.6.1　SQLServer的自动事务处理　179
5.6.2　SQLServer的显式事务处理　180
5.6.3　SQLServer的隐式事务处理　180
5.6.4　事务中支持的Transact-SQL语句　181
5.6.5　使用嵌套事务　181
5.6.6　使用事务保存点　183
5.7　并发访问和锁定控制　184
5.7.1　并发影响的类型　185
5.7.2　并发控制的类型　185
5.7.3　锁管理器的数据锁定　186
5.7.4　自定义锁定　190
5.7.5　使用事务隔离级别　191
5.7.6　使用行版本的事务隔离级别　193
5.7.7　处理死锁　196
5.8　使用游标　199
5.8.1　创建游标　199
5.8.2　创建快速只进游标和可滚动游标　200
5.8.3　静态游标、动态游标和由键集驱动的游标　202
5.8.4　创建可更新游标　203
5.8.5　游标锁定　204
5.8.6　确定游标内行的数目　205
5.8.7　指定游标的作用域　206
第6章　使用全文搜索　207
6.1　全文搜索的体系结构　207
6.1.1　全文引擎　207
6.1.2　筛选器后台程序　208
6.1.3　干扰词和同义词库　209
6.2　创建全文目录和索引　212
6.2.1　全文索引与普通索引的差异　212
6.2.2　全文索引的结构　213
6.2.3　通过SQLServerManagementStudio创建全文目录和索引　213
6.2.4　通过Transact-SQL创建全文目录和索引　216
6.3　修改全文目录和索引　219
6.3.1　通过SQLServerManagementStudio修改全文目录和索引　219
6.3.2　通过Transact-SQL修改全文目录和索引　222
6.4　备份和还原全文目录　223
6.4.1　备份全文目录　223
6.4.2　恢复全文目录　225
6.5　删除全文目录和索引　226
6.5.1　通过SQLServerManagementStudio删除全文目录和索引　226
6.5.2　通过Transact-SQL删除全文目录和索引　226
6.6　使用全文搜索查询　226
6.6.1　使用全文谓词　227
6.6.2　使用全文函数　231
第7章　存储过程、触发器和用户定义函数　233
7.1　存储过程的类型　233
7.1.1　用户定义的存储过程　233
7.1.2　扩展存储过程　234
7.1.3　系统存储过程　234
7.2　Transact-SQL存储过程　235
7.2.1　创建存储过程　235
7.2.2　创建临时存储过程　239
7.2.3　修改存储过程　239
7.2.4　存储过程的重新编译　239
7.2.5　存储过程的错误处理　241
7.3　CLR存储过程　247
7.3.1　创建一个具有输出参数的CLR存储过程　247
7.3.2　创建返回行集和信息的CLR存储过程　251
7.3.3　删除CLR存储过程和程序集　252
7.3.4　CLR与Transact-SQL存储过程的择取建议　252
7.4　嵌套存储过程　254
7.5　使用OLE自动化存储过程　255
7.5.1　创建和删除OLE对象　255
7.5.2　获取OLE对象的属性　256
7.5.3　设置OLE对象的属性　256
7.5.4　执行OLE对象的方法　256
7.5.5　出错处理　257
7.5.6　启动和停止OLE自动化共享执行环境　258
7.5.7　OLE自动化存储过程示例　258
7.6　使用DML触发器　260
7.6.1　DML触发器的类型　260
7.6.2　创建AFTER触发器　260
7.6.3　触发器编程的限制　261
7.6.4　在触发器中检测对指定列的UPDATE或INSERT操作　264
7.6.5　指定First和Last触发器　266
7.6.6　嵌套和递归触发器　267
7.6.7　使用INSTEADOF触发器　269
7.7　使用DDL触发器　272
7.7.1　用于激发DDL触发器的DDL事件和事件组　272
7.7.2　创建DDL触发器　274
7.8　使用CLR触发器　276
7.8.1　SqlTriggerContext类　276
7.8.2　创建CLRDML触发器　279
7.8.3　创建CLRDDL触发器　282
7.9　修改、删除和禁用触发器　284
7.9.1　DML触发器　284
7.9.2　DDL触发器　284
7.9.3　CLR触发器　285
7.10　用户自定义函数　285
7.10.1　创建标量用户自定义函数　286
7.10.2　创建表值用户自定义函数　286
7.10.3　创建CLR标量函数　289
7.10.4　创建CLR表值函数　291
7.10.5　创建CLR聚合函数　293
7.10.6　修改和删除用户自定义函数　296
第8章　使用XML　297
8.1　XML基础　297
8.1.1　基本XML文档结构　297
8.1.2　DOM　300
8.1.3　XSL　300
8.1.4　XML架构和XSD文档　302
8.1.5　XPath　305
8.2　XML数据类型和XML架构集合　312
8.2.1　类型化和非类型化的XML　313
8.2.2　创建非类型化XML　313
8.2.3　使用XML架构集合创建类型化XML　314
8.2.4　内置XML架构集合　321
8.2.5　xml数据类型的方法　322
8.2.6　XML数据修改语言(XMLDML)　328
8.2.7　xml数据类型的限制　334
8.3　XQuery　335
8.3.1　XQuery基础知识　336
8.3.2　XQuery表达式　340
8.3.3　XQueryProlog　346
8.3.4　构造XML　347
8.3.5　针对xml数据类型的Xquery函数　350
8.4　使用Transact-SQL构造XML　357
8.4.1　SELECT...FORXML语句　357
8.4.2　使用RAW模式　358
8.4.3　使用AUTO模式　362
8.4.4　使用EXPLICIT模式　364
8.4.5　使用PATH模式　373
8.5　使用OPENXML查询XML　376
8.5.1　分析XML文档　376
8.5.2　提供行集视图　377
8.5.3　使用OPENXML　379
8.5.4　在OPENXML中指定元属性　389
8.6　XML索引　390
8.6.1　创建主XML索引　391
8.6.2　创建辅助XML索引　393
8.6.3　修改XML索引　394
8.6.4　删除XML索引　395
第3部分　开发篇
第9章　SQLNativeClient编程　397
9.1　Microsoft数据访问技术简介　397
9.1.1　Microsoft数据访问组件　397
9.1.2　SQLNativeClient　399
9.1.3　ADO NET　400
9.1.4　已过时的数据访问技术　401
9.2　使用SQLNativeClient进行开发的必要条件　401
9.2.1　操作系统需求　401
9.2.2　SQLServer需求　402
9.2.3　交叉语言需求　402
9.2.4　SQLNativeClient的再分发　402
9.2.5　SQLNativeClient的头文件和库文件　402
9.3　使用SQLNativeClient的OLEDB方式　403
9.3.1　创建使用SQLNativeClientOLEDB提供程序的应用程序　403
9.3.2　数据源对象　406
9.3.3　命令　418
9.3.4　行集　421
9.3.5　存储过程　435
9.3.6　BLOB和OLE对象　437
9.3.7　表和索引　449
9.3.8　数据类型　456
9.3.9　架构行集支持　457
9.3.10　事务处理　458
9.3.11　错误处理　462
9.4　使用SQLNativeClient的ODBC方式　466
9.4.1　创建SQLNativeClientODBC应用程序　466
9.4.2　与SQLServer进行通信　468
9.4.3　执行查询　471
9.4.4　处理结果　476
9.4.5　使用游标　480
9.4.6　执行事务处理　484
9.4.7　处理错误和信息　485
9.4.8　运行存储过程　488
9.4.9　使用目录函数　490
9.4.10　执行批量复制　490
9.4.11　映射text和image列　494
9.5　使用SQLNativeClient连接字符串关键词　495
9.5.1　SQLNativeClientOLEDB提供程序的连接字符串关键词　495
9.5.2　SQLNativeClientODBC驱动程序连接字符串关键词　497
9.5.3　ActiveXDataObjects(ADO)提连接字符串关键词　499
9.6　使用数据库镜像　500
9.6.1　编程考虑　500
9.6.2　SQLNativeClientOLEDB提提供程序　501
9.6.3　SQLNativeClientODBC提驱动程序　501
9.7　执行异步操作　501
9.7.1　打开和关闭一个数据库连接　501
9.7.2　执行程序初始化和行集初始化　502
9.8　使用多活动结果集(MARS)　504
9.8.1　SQLNativeClientOLEDB提提供程序　504
9.8.2　SQLNativeClientODBC驱驱动程序　505
9.9　使用SQLServer2005的新增数据类型　506
9.9.1　使用用户定义类型　506
9.9.2　使用xml数据类型　510
9.10　使用快照隔离　516
9.10.1　SQLNativeClientOLEDB提提供程序　516
9.10.2　SQLNativeClientODBC驱驱动程序　517
9.11　使用查询通知　517
9.11.1　SQLNativeClientOLEDB驱提供程序　518
9.11.2　SQLNativeClientODBC驱驱动程序　518
第10章　ADO.NET编程　519
10.1　DO.NET对象模型　519
10.1.1　.NETFramework数据提供程序　519
10.1.2　DataSet对象　521
10.2　连接到SQLServer数据库　522
10.2.1　创建SqlConnection对象　522
10.2.2　使用连接字符串　522
10.2.3　打开和关闭连接　526
10.2.4　使用连接池　526
10.3　使用SqlCommand对象　528
10.3.1　创建SqlCommand对象　528
10.3.2　执行不返回行的查询　529
10.3.3　使用SqlDataReader检索查询结果　529
10.3.4　从数据库中获取单个值　533
10.3.5　执行参数化查询　533
10.3.6　调用存储过程　534
10.3.7　在事务中执行查询　535
10.4　使用SqlDataAdapter对象　535
10.4.1　SqlDataAdapter的结构　535
10.4.2　创建SqlDataAdapter对象　536
10.4.3　使用Fill方法填充DataSet　536
10.4.4　向DataSet添加约束　538
10.4.5　在SqlDataAdapter中使用参数和返回值　539
10.4.6　使用SqlDataAdapter事件　541
10.5　使用DataSet对象　543
10.5.1　创建DataSet　543
10.5.2　创建和使用DataTable　544
10.5.3　创建和使用DataTableReader用　553
10.5.4　添加表间关系　554
10.5.5　创建和使用DataView　556
10.5.6　在DataSet中使用XML　559
10.6　使用数据库镜像　564
10.6.1　SqlClient中的镜像支持　564
10.6.2　镜像限制　565
10.6.3　缓存合作伙伴服务器的名称　565
10.6.4　检索当前服务器名称　565
10.7　执行异步操作　565
10.7.1　使用回调创建Windows应用程序　566
10.7.2　使用等待句柄创建ASP.NET应用程序　568
10.7.3　在控制台应用程序中使用轮询　572
10.8　使用多个活动结果集　573
10.8.1　启用多个活动结果集　573
10.8.2　使用多个活动结果集　574
10.9　使用用户定义数据类型　577
10.9.1　检索UDT数据　577
10.9.2　使用DataAdapter更新UDT列　579
10.10　使用SQLXML　582
10.10.1　使用DataReader中的XML列值　582
10.10.2　将XML值指定为命令参数　583
10.11　使用快照隔离　584
10.12　使用查询通知　586
第11章　本机XMLWeb服务　589
11.1　本机XMLWeb服务概述　589
11.2　创建HTTP端点　590
11.2.1　CREATEENDPOINT语句　590
11.2.2　创建HTTP端点　593
11.3　创建通过Web服务访问SQLServer的应用程序　594
11.3.1　HTTP端点的身份验证　595
11.3.2　使用Web服务的应用程序示例　598
第4部分　分析篇
第12章　SQLServer集成服务　602
12.1　SSIS的体系结构　602
12.2　BusinessIntelligenceDevelopmentStudio　603
12.2.1　设计器窗口　604
12.2.2　解决方案资源管理器　604
12.2.3　属性窗口　605
12.2.4　工具箱　605
12.3　创建包　605
12.3.1　创建项目　606
12.3.2　IntegrationServices容器　607
12.3.3　使用SQLServer导出和导入向导创建包　607
12.3.4　使用SSIS设计器创建包　610
12.4　部署包　626
12.4.1　包配制　626
12.4.2　创建包配制　627
12.4.3　创建部署实用工具　628
12.4.4　安装包　629
第13章　AnalysisServices　630
13.1　AnalysisServices概念　630
13.1.1　统一维度模型　630
13.1.2　数据挖掘概念　631
13.2　AnalysisServices术语　633
13.2.1　多维数据集及其部件　633
13.2.2　MOLAP、ROLAP和HOLAP　633
13.2.3　分区和虚拟多维数据集　634
13.3　使用AnalysisServices　635
13.3.1　BusinessIntelligenceDevelopmentStudio　635
13.3.2　SQLServerManagementStudio　635
13.3.3　创建AnalysisServices项目　635
13.3.4　创建数据源　636
13.3.5　创建数据源视图　637
13.3.6　创建多维数据集　638
13.3.7　使用多维数据集设计器　641
13.3.8　部署多维数据集　642
13.3.9　处理多维数据集　642
13.3.10　浏览多维数据集　644
13.3.11　使用维度向导　645
13.3.12　使用数据挖掘向导　654
13.4　部署AnalysisServices　658
13.4.1　规划AnalysisServices部署　658
13.4.2　在生产环境中部署AnalysisServices数据库　658
第14章　报表服务　663
14.1　报表服务综述　663
14.1.1　可用的报表服务方案　663
14.1.2　报表的生命周期　664
14.1.3　关键术语　665
14.1.4　关键组件　667
14.2　创建报表　669
14.2.1　使用报表向导创建报表　669
14.2.2　使用报表设计器创建报表　673
14.2.3　创建参数化报表　677
14.3　发布报表　680
14.3.1　设置部署属性　681
14.3.2　生成和部署报表　681
14.4　报表管理　683
14.4.1　使用报表管理器管理报表　683
14.4.2　使用ManagementStudio管理报表　693
14.5　报表传递　695
14.5.1　报表订阅　695
14.5.2　使用共享计划　704
14.5.3　打印报表　705
14.6　报表服务的安全性设置　706
14.6.1　角色定义　706
14.6.2　角色分配　710
14.7　ReportingServices配置工具　712
14.7.1　服务器状态　712
14.7.2　创建和配置虚拟目录　712
14.7.3　配置服务账户　713
14.7.4　创建和配置报表服务器数据库　713
14.7.5　管理加密密钥和初始化　713
14.7.6　配置电子邮件传递和执行账户　713
第5部分　管理篇
第15章　基本管理任务　715
15.1　备份与还原概述　715
15.1.1　数据备份的原理　715
15.1.2　数据备份的类型　716
15.1.3　恢复模式　717
15.2　数据备份　718
15.2.1　创建备份设备　718
15.2.2　执行完整备份　719
15.2.3　执行差异备份　721
15.2.4　执行事务日志备份　721
15.2.5　执行文件和文件组备份　722
15.2.6　查看备份设备中的媒体内容　723
15.3　数据还原　724
15.3.1　数据还原方案　724
15.3.2　执行数据库完整还原　725
15.3.3　执行文件还原　727
15.3.4　执行页面还原　728
15.3.5　执行段落还原　730
15.4　使用数据库复制向导　731
15.5　监视与优化　734
15.5.1　使用系统监视器监视资源使用　735
15.5.2　使用SQLServerProfiler跟踪查询　736
15.5.3　使用SQLServerManagementStudio监视　741
15.5.4　监视错误日志　742
15.5.5　优化服务器性能　744
15.5.6　使用数据库引擎优化顾问　748
第16章　自动执行管理任务　752
16.1　SQLServer代理　752
16.1.1　SQLServer代理的组件　752
16.1.2　启动SQLServer代理服务　753
16.1.3　SQLServer代理工具　753
16.2　创建和执行作业　754
16.2.1　创建本地服务器作业　754
16.2.2　执行作业　757
16.2.3　查看作业历史记录　757
16.2.4　作业活动监视器　758
16.3　创建警报　759
16.3.1　定义操作员　759
16.3.2　配置数据库邮件　760
16.3.3　创建警报　762
16.4　多服务器管理　763
16.4.1　设置主服务器　764
16.4.2　创建多服务器作业　765
第17章　SQLServer管理对象(SMO)　766
17.1　SMO对象模型　766
17.2　创建和连接Server对象　767
17.2.1　Server对象的属性和方法　767
17.2.2　连接到Server对象　769
17.3　访问和设置数据库　769
17.4　创建和执行存储过程　772
17.5　创建警报　774
第18章　SQLServer的安全性管理　775
18.1　安全功能简介　775
18.1.1　安全主体　775
18.1.2　安全对象　775
18.1.3　权限层次结构　775
18.2　SQLServer登录管理　776
18.2.1　SQLServer身份验证模式　776
18.2.2　标准登录　777
18.2.3　Windows登录　778
18.2.4　固定服务器角色　780
18.3　数据库级管理　782
18.3.1　创建数据库用户　782
18.3.2　权限控制　782
18.3.3　数据库角色　784
18.3.4　应用程序角色　786
18.4　所有权链　787
18.4.1　如何在链中检查权限　787
18.4.2　跨数据库所有权链接　788
18.4.3　潜在威胁　788
……