标题：SQLServer2005高级程序设计
SQL Server 2005高级程序设计
作　　者： （美）维埃拉　著，董明　等译
出 版 社： 人民邮电出版社
出版时间： 2008-4-1 
字　　数： 1158000 
版　　次： 1
页　　数： 674 
开　　本： 16开 
印　　次： 1 
纸　　张： 胶版纸
I S B N ： 9787115170798 
包　　装： 平装
所属分类： 图书 >> 计算机/网络 >> 数据库 >> SQL 
定价：￥89.00
编辑推荐
SQL Server经典巨著，专家亲身经验，娓娓道来。
SQL Server 2005是微软数据库技术的一个里程碑，新增或重写的功能在数量和重要性上都令人惊叹。但是，功能的强大和丰富也向程序员提出了挑战。只有正确地选择，并善加运用，才能发挥数据库的真正潜力。 
本书恰恰满足了这一需要。作为SQL Server领域最具影响力的经典著作之一，本书各版本累计销量已经超过了10万册。在Amazon共有150多位读者给予4星半评价。它从众多同类图书中脱颖而出的秘诀。就在于作者不是一般性地讲述各个知识点，而是处处从自身的经验和实战需要出发，对各种功能的正确运用做出切中要害的评述和深入的探讨，使读者能够轻松获得本来需要多年摸索才能掌握的深度知识。书中对一些SQL Server特性的批评，显示了作者非同一般的功力。
内容简介
本书是SQL Server应用开发的经典著作。主要讨论了SQL Server数据库对象、T-SQL基础、键和约束、高级查询、存储和索引、事务和锁、触发器、安全性等内容。书中在讲述每个主题时，都会先给出背景知识，然后讲述自身经验，并在适当时候推出示例，进一步予以说明。
本书主要面向中高级数据库开发人员。
作者简介
Robert Vieira SQL Server领域的世界权威。他曾经任全球领先的IT管理分析解决方案供应商NetTQ公司的软件架构师，负责产品的架构设计和对其他程序员进行培训和指导。从2006年开始，他成为一名独立咨询师。Vieira在数据库架构和管理上有很深造诣，并乐于向技术社区分享自己的经验和知识，因而享誉世界。他撰写了多部数据库开发方面的畅销书，本书是他的代表作。
目录
第1章　回顾SQL Server中的对象　
第2章　工具　
第3章　T-SQL基础　
第4章　创建和修改表　
第5章　回顾键和约束　
第6章　更深入的问题：高级查询　
第7章　挑战设计　
第8章　SQL Server——存储和索引结构　
第9章　视图　
第10章　脚本和批处理　
第11章　存储过程和用户定义函数　
11.1　创建存储过程：基本语法　
11.2　用ALTER更改存储过程　
11.3　删除存储过程　
11.4　参数　
11.4.1　声明参数　
11.4.2　创建输出参数　
11.5　通过返回值确认成功或失败　
11.6　错误处理　
11.6.1　应该采取的方式　
11.6.2　手工生成错误　
11.6.3　添加你自己的自定义错误消息　
11.7　存储过程能提供什么　
11.7.1　创建可调用的过程　
11.7.2　因安全而使用存储过程　
11.7.3　存储过程和性能　
11.8　扩展存储过程　
11.9　递归概览　
11.10　用户定义函数　
11.10.1　什么是UDF　
11.10.2　返回标量值的UDF　
11.11　返回表的UDF　
11.12　调试　
11.12.1　为进行调试而设置SQL Server　
11.12.2　启动调试器　
11.12.3　调试器的组成　
11.12.4　调试器启动后使用　
11.13　小结　
第12章　事务和锁　
12.1　事务　
12.1.1　BEGIN TRAN　
12.1.2　COMMIT TRAN　
12.1.3　ROLLBACK TRAN　
12.1.4　SAVE TRAN　
12.2　SQL Server日志的工作原理　
12.2.1　使用CHECKPOINT命令　
12.2.2　在恢复时使用CHECKPOINT　
12.2.3　正常的服务器关机　
12.2.4　数据库选项的更改　
12.2.5　当Truncate on Checkpoint选项活动时　
12.2.6　当恢复时间超出Recovery Interval选项的设置时　
12.2.7　失败和恢复　
12.2.8　隐式事务　
12.3　锁和并发　
12.3.1　通过锁可以防止什么问题　
12.3.2　可锁的资源　
12.3.3　锁升级以及锁对性能的影响　
12.3.4　锁模式　
12.3.5　锁的兼容性　
12.3.6　指定特定的锁类型--优化器提示　
12.4　设置隔离级别　
12.4.1　READ COMMITTED　
12.4.2　READ UNCOMMITTED　
12.4.3　REPEATABLE READ　
12.4.4　SERIALIZABLE　
12.5　处理死锁（也称作“A 1205”）　
12.5.1　SQL Server是如何判断存在死锁的　
12.5.2　死锁牺牲品是如何选择的　
12.5.3　避免死锁　
12.6　小结　
第13章　触发器　
13.1　什么是触发器　
13.1.1　ON　
13.1.2　WITH ENCRYPTION　
13.1.3　FOR|AFTER与INSTEAD OF子句　
13.1.4　WITH APPEND　
13.1.5　NOT FOR REPLICATION　
13.1.6　AS　
13.2　为数据完整性规则使用触发器　
13.2.1　处理来自其他表的要求　
13.2.2　使用触发器检查更新的差异　
13.2.3　为定制错误消息使用触发器　
13.3　触发器的其他常见用途　
13.3.1　更新摘要信息　
13.3.2　向非规范化的表中输入数据以用于报告　
13.3.3　设置条件标记　
13.4　其他触发器问题　
13.4.1　触发器可以是嵌套的　
13.4.2　触发器可以是递归的　
13.4.3　调试触发器　
13.4.4　触发器不妨碍修改架构　
13.4.5　不必删除触发器就能够禁用它　
13.4.6　触发器激发顺序　
13.5　INSTEAD OF触发器　
13.5.1　INSTEAD OF INSERT触发器　
13.5.2　INSTEAD OF UPDATE触发器　
13.5.3　INSTEAD OF DELETE触发器　
13.6　IF UPDATE（）与COLUMNS_UPDATED　
13.6.1　UPDATE（）函数　
13.6.2　COLUMNS_UPDATED（）函数　
13.7　性能考虑　
13.7.1　触发器是被动的而非先发制人的　
13.7.2　触发器与激发它们的进程之间没有并发问题　
13.7.3　保持短小精悍　
13.7.4　在选择索引时不要忘记了触发器　
13.7.5　不要试图在触发器中回滚　
13.8　删除触发器　
13.9　调试触发器　
13.10　小结　
第14章　使用.NET　
14.1　程序集入门　
14.2　编译程序集　
14.3　将程序集上载到SQL Server中　
14.4　创建基于程序集的存储过程　
14.5　从程序集中创建标量用户定义函数　
14.6　创建表值函数　
14.7　创建聚集函数　
14.8　从程序集创建触发器　
14.9　自定义数据类型　
14.9.1　从程序集创建自己的数据类型　
14.9.2　访问复杂数据类型　
14.9.3　删除数据类型　
14.10　小结　
第15章　SQL游标　
15.1　什么是游标　
15.2　游标的生命期　
15.3　游标的类型和扩展的声明语法　
15.3.1　作用域　
15.3.2　可滚动性　
15.3.3　游标类型　
15.3.4　并发性选项　
15.3.5　游标类型转换检测：TYPE_WARNING　
15.3.6　FOR < SELECT >　
15.3.7　FOR UPDATE　
15.4　在游标中导航：FETCH语句　
15.5　在游标中修改数据　
15.6　小结　
第16章　XML集成　
16.1　XML数据类型　
16.1.1　定义一个XML数据类型的列　
16.1.2　XML模式集合　
16.1.3　创建、修改和删除XML模式集合　
16.1.4　XML数据类型方法　
16.1.5　在模式集合上的强制约束　
16.2　提取XML格式的关系数据　
16.2.1　FOR XML子句　
16.2.2　OPENXML　
16.3　XML索引的快速提示　
16.4　HTTP端点　
16.4.1　安全性　
16.4.2　HTTP端点方法　
16.4.3　创建和管理HTTP端点　
16.4.4　最后的思考　
16.5　小结　
第17章　报表服务　
17.1　报表服务入门　
17.2　构建简单的报表模型　
17.2.1　数据源视图　
17.2.2　创建报表　
17.3　报表服务器项目　
17.4　小结　
第18章　BCP和其他基本的大容量操作　
18.1　BCP实用工具　
18.1.1　BCP语法　
18.1.2　BCP导入　
18.1.3　BCP导出　
18.2　格式化文件　
18.2.1　当列不匹配时　
18.2.2　使用格式化文件　
18.2.3　最大化导入的性能　
18.3　BULK INSERT　
18.4　OPENROWSET（BULK）　
18.4.1　ROWS_PER_BATCH　
18.4.2　SINGLE_BLOB，SINGLE_CLOB，SINGLE_NCLOB　
18.5　小结　
第19章　集成服务　
19.1　理解问题　
19.2　包的概述　
19.2.1　任务　
19.2.2　主窗口　
19.2.3　解决方案资源管理器　
19.2.4　属性窗口　
19.3　创建简单的包　
19.4　执行包　
19.4.1　执行包实用工具的使用　
19.4.2　在Management Studio中执行　
19.5　小结　
第20章　复制　
20.1　复制基础　
20.1.1　考虑在什么时候做出复制计划　
20.1.2　复制角色　
20.1.3　订阅　
20.1.4　订阅服务器的类型　
20.1.5　筛选数据　
20.2　复制模型　
20.2.1　快照复制　
20.2.2　合并复制　
20.2.3　事务复制　
20.2.4　立即更新订阅服务器　
20.2.5　混合复制类型　
20.3　复制的拓扑结构　
20.3.1　简单模型　
20.3.2　混合模型　
20.4　为复制制订计划　
20.4.1　涉及的数据　
20.4.2　移动设备　
20.5　在Management Studio中设置复制　
20.5.1　为复制配置服务器　
20.5.2　配置发布　
20.5.3　设置订阅服务器（通过Management Studio）　
20.5.4　使用复制数据库　
20.6　复制管理对象　
20.7　小结　
第21章　全文搜索　
21.1　全文搜索的架构　
21.2　设置全文索引和目录　
21.2.1　为数据库激活全文特性　
21.2.2　创建、修改、删除和操作全文特性　
21.2.3　创建、更改、删除和操作全文索引　
21.2.4　使用旧的语法来创建全文目录　
21.2.5　针对索引的旧语法　
21.2.6　关于索引填充的更多内容　
21.3　全文查询语法　
21.3.1　CONTAINS　
21.3.2　FREETEXT　
21.3.3　CONTAINSTABLE　
21.3.4　FREETEXTTABLE　
21.3.5　处理短语　
21.3.6　布尔操作　
21.3.7　邻近词　
21.3.8　权重　
21.3.9　特定性　
21.4　干扰词　
21.5　小结　
第22章　安全性　
22.1　安全性基础　
22.1.1　一个人，一个登录名，一个密码　
22.1.2　密码过期　
22.1.3　密码长度和组成　
22.1.4　尝试登录的次数　
22.1.5　用户和密码信息的存储　
22.2　安全性选项　
22.2.1　SQL Server安全性　
22.2.2　创建和管理登录　
22.2.3　Windows集成的安全性　
22.3　用户权限　
22.3.1　授予访问特定数据库的权限　
22.3.2　授予数据库中对象的权限　
22.3.3　用户权限和语句级别的许可　
22.4　服务器和数据库角色　
22.4.1　服务器角色　
22.4.2　数据库角色　
22.5　应用程序角色　
22.5.1　创建应用程序角色　
22.5.2　向应用程序角色添加许可权限　
22.5.3　使用应用程序角色　
22.5.4　删除应用程序角色　
22.6　更高级的安全性　
22.6.1　关于guest账户应该怎么办　
22.6.2　TCP/IP端口设置　
22.6.3　别使用sa账户　
22.6.4　让xp_cmdshell保持隐秘　
22.6.5　不要忘记作为安全手段的视图、存储过程以及UDF　
22.7　证书和非对称密钥　
22.7.1　证书　
22.7.2　非对称密钥　
22.8　小结　
第23章　性能优化　
23.1　什么时候进行优化　
23.2　索引选择　
23.3　客户端和服务器端处理　
23.4　战略上的非规范化　
23.5　例行维护　
23.6　组织好存储过程　
23.6.1　让事务尽量短　
23.6.2　尽可能使用限制性最少的事务隔离级别　
23.6.3　必要的话实现多个解决方案　
23.6.4　尽可能避免使用游标　
23.7　使用临时表　
23.8　莫以善小而不为　
23.9　硬件的考虑　
23.9.1　独占对服务器的使用　
23.9.2　I/O密集与CPU密集　
23.9.3　OLTP和OLAP　
23.9.4　现场的和非现场的　
23.9.5　挂起的风险　
23.9.6　丢失数据　
23.9.7　性能就是全部吗？　
23.9.8　驱动器支持　
23.9.9　理想的系统　
23.10　排错　
23.10.1　多种多样的显示计划和STATISTICS　
23.10.2　数据库一致性检查器（DBCC）　
23.10.3　查询调控器　
23.10.4　SQL Server Profiler　
23.10.5　性能监视器　
23.11　小结　
第24章　管理　
24.1　计划作业　
24.1.1　创建操作员　
24.1.2　创建作业和任务　
24.2　备份和恢复　
24.2.1　创建备份　
24.2.2　恢复模式　
24.2.3　恢复　
24.3　索引维护　
24.3.1　ALTER INDEX　
24.3.2　索引名　
24.3.3　表名或视图名　
24.3.4　REBUILD　
24.3.5　DISABLE　
24.3.6　REORGANIZE　
24.4　数据存档　
24.5　小结　
第25章　SMO：SQL管理对象　
25.1　SQL Server SMO的历史　
25.1.1　SQL分布式管理对象　
25.1.2　SQL命名空间　
25.1.3　WMI　
25.1.4　SMO　
25.2　SMO对象模型　
25.3　演练实例　
25.3.1　开始　
25.3.2　创建数据库　
25.3.3　创建表　
25.4　删除数据库　
25.5　备份数据库　
25.6　生成脚本　
25.7　完整的代码　
25.8　小结　
附录A　系统函数　
附录B　连接性　
附录C　获得服务
媒体评论
“如果你需要一部既有相当的广度，又具足够深度的书，那么本书将是最佳选择。” 
——Blogcritics.org 
“本书仍然是SQL Server程序员的必读之作。它是同类图书中最通俗易读的，很好地结合了理论和实践。” 
——sql-server-performance.com