标题：SQL Server 2008高级程序设计
图书信息
  作者：维埃拉(Robert Vieira) (作者), 杨华 (译者), 腾灵灵 (译者) 
出版社: 清华大学出版社; 第1版 (2010年4月1日) 
外文书名: Professional Microsoft SQL Server 2008 Programming
平装: 730页 
正文语种: 简体中文 
开本: 16
ISBN: 730222272X, 9787302222729 
条形码: 9787302222729 
产品尺寸及重量: 25.4 x 18.4 x 4 cm ; 1.3 Kg
内容简介
《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira撰写，它介绍SQL Server 2008的新功能，讨论如何设计性能卓越的应用程序，分析如何提高应用程序安全性，讲述如何管理高级脚本和数据库，并陈述新数据类型、高级查询、XML集成、索引结构、高级时区处理和数据仓库等重要内容。 
编辑推荐
《SQL Server 2008高级程序设计》：Microsoft SQL Server 2008极大地完善了数据库引擎的核心组件，也改变了数据库应用程序的构建方式。《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写，旨在指导您熟练运用一系列日趋复杂的功能，助您更高效地管理数据。
《SQL Server 2008高级程序设计》首先介绍SQL Server 2008的新功能，然后在更详实的示例代码的引导下全面深入地展开论述，讨论了如何编写复杂查询、构建各种数据结构以及提高应用程序性能，还讲述了如何管理高级脚本和数据库以及如何确定和改正脚本错误。
《SQL Server 2008高级程序设计》提供了快速创建和部署数据驱动的解决方案来满足业务需求的信息，介绍了新数据类型、索引结构、管理功能和高级时区处理等重要内容，掌握这些知识后，您将使自己的数据库发挥十最大功效。
主要内容
除规范化外的数据设计技巧
尽量提高应用程序运行速度的方法
有关存储过程和用户定义函数的全部内容
存储过程的高级处理方法
报表服务和集成服务的用法
提高数据库安全性的提示信息
如何利用XML和XQuery支持
通过修改特定数据值进行推理分析的步骤
读者对象
《SQL Server 2008高级程序设计》面向想要学用所有SQL Server 2008功能的有经验的开发人员。 
作者简介
维埃拉（Robert Vieira），当1978年的计算机热潮席卷而来时，Robert Vieira对计算机技术萌生了浓厚兴趣。他从1983年开始攻读计算机信息系统学位，于1985年后期涉足自己钟爱的“计算机程序故障”领域，于1990年获得商业管理学位。丰富的商业知识和计算知识为保障他的事业取得成功奠定了坚实基础。获得学士学位后，他又相继获得CMA、MCSD、MCT、MCDBA以及EMT等认证。 
Robert目前担任Huron Consulting Group的Stockamp公司的数据库团队领导，迄今已出版了6本有关SQL Server开发的书籍。 
目录
第1章 回顾SQLServer中的对象
1.1 数据库的构成
1.2 数据库对象概述
1.2.1 数据库对象
1.2.2 事务日志
1.2.3 最基本的数据库对象：表
1.2.4 模式
1.2.5 文件组
1.2.6 图表
1.2.7 视图
1.2.8 存储过程
1.2.9 用户自定义函数
1.2.10 用户和角色
1.2.11 规则
1.2.12 默认值
1.2.13 用户自定义数据类型
1.2.14 全文目录
1.3 SQLServer数据类型
1.4 SQLserver对象标识符
1.4.1 需要命名的对象
1.4.2 命名规则
1.5 小结
第2章 工具
2.1 联机丛书
2.2 SQLServer配置管理器
2.2.1 服务管理
2.2.2 网络配置
2.2.3 协议
2.2.4 客户端配置
2.3 SQLServerMaliagementStudi0
2.3.1 启动Managemenc Studio
2.3.2 查询编辑器
2.4 SQLServerBusillessIntelligence DeveloplhentStudio
2.5 SQLserver集成服务（SsIs）
2.6 R.epOningSerVices
2.7 BulkCopyPrograml（bcp）
2.8 SQLServerProfiler
2.9 sqlcmd
2.10 小结
第3章 提出更好的问题：高级查询
3.1 子查询概述
3.2 构建嵌套子查询
3.2.1 使用单值SELECT语句的嵌套查询
3.2.2 使用返回多个值的子查询的嵌套查询
3.2.3 ANY、SOME和ALL运算符
3.3 相关子查询
3.3.1 相关子查询的工作方式
3.3.2 WHERE子句中的相关子查询
3.3.3 SELECT列表中的相关子查询
3.4 派生表
3.5 EⅪSTS运算符
3.6 INTERSECT和EXCEPT运算符
3.6.1 EXCEPT
3.6.2 INTERSECT
3.6.3 比较EXCEPT和INTERSECT与相应的EⅪSTS和NOTExISTS语句
3.7 通用表表达式（CTE）
3.8 递归查询
3.9 合并
3.10 利用外部调用完成复杂操作
3.11 性能考虑
3.12 小结
第4章 XML集成
4.1 XML数据类型
4.1.1 定义XML数据类型的列
4.1.2 XML模式集合
4.1.3 创建、修改和删除Ⅺ儿模式集合
4.1.4 XML数据类型方法
4.1.5 施加超出模式集合范围的约束
4.2 提取XML格式的关系数据
4.2.1 FORXML子句
4.2.2 OPENXML
4.3 有关XML索引的提示
4.4 层次数据概述
4.5 小结
第5章 细心推敲，大胆设计
5.1 进一步了解规范化
5.1.1 入手点
5.1.2 达到第三范式
5.1.3 其他的规范形式
5.2 关系
5.3 图表
5.3.1 几种关系类型
5.3.2 实体框
5.3.3 关系线
5.3.4 终止符
5.4 逻辑设计与物理设计
5.4.1 逻辑模型的用途
5.4.2 逻辑模型的组成
5.5 通过经典的BLOB处理基于文件的信息
5.6 子类别
5.6.1 子类别的类型
5.6.2 明确概念——实现子类别
5.6.3 子类别的物理实现
5.6.4 通过子类别增加可扩展性
5.7 数据库重用
5.7.1 可重用数据库的候选
5.7.2 如何分解事物
5.7.3 可重用性的高昂代价
5.8 反规范化
5.9 通过分区方法进行扩展
5.10 SQLServer关系图工具
5.10.1 表
5.10.2 处理约束
5.11 关于日期列
5.12 小结
第6章 核心存储和索引结构
6.1 SQLserer存储
6.1.1 数据库
6.1.2 文件
6.1.3 区段
6.1.4 页
6.1.5 行
6.1.6 全文目录
6.1.7 文件流
6.2 理解索引
6.2.1 “B”还是非“B”：B树
6.2.2 如何在SQLServer中访问数据
6.2.3 索引类型和索引导航
6.3 创建、修改和删除索引
6.3.1 CREATEINDEX语句
6.3.2 随约束隐含创建的索引
6.3.3 ALTERINDEX
6.3.4 DROPINDEX
6.4 明智地决定何时何地使用何种索引
6.4.1 选择性
6.4.2 注意代价
6.4.3 选择聚集索引
6.4.4 列排序问题
6.4.5 删除索引
6.4.6 使用数据库引擎优化顾问
6.5 维护索引
6.5.1 碎片
6.5.2 检测碎片
6.6 小结
第7章 更高级的索引结构
7.1 XML索引
7.1.1 主XML索引
7.1.2 辅助XML索引
7.1.3创建XML索引
7.2 用户定义的数据类型
7.2.1 经典UDT
7.2.2 NETUDT
7.2.3 表格式UDT
7.2.4 删除用户定义的类型
7.3 层次数据
7.3.1 理解深度与输出
7.3.2 HifffarchyID类型结构
7.3.3 处理HierarchyID值——HicrarchyID方法
7.3.4 索引层次数据
7.3.5 性能考虑
7.4 空间数据
7.4.1 空间概念
7.4.2 平面数据描述的实现GEOME FRY数据类型
7.4.3 测量数据描述的实现GEOGRAPHY类型
7.5 文件流
7.6 启用文件流
7.6.1 为数据库启用文件流
7.6.2 创建一个启用文件流的表
7.6.3 在T.SQL中使用文件流
7.6.4 在.NET中使用文件流
7.7 表压缩
7.8 小结
第8章 视图
8.1 回顾视图语法
8.2 更复杂的视图
8.3 使用T.SQL编辑视图
8.4 删除视图
8.5 审核：显示现有代码
8.6 保护代码：加密视图
8.7 关于模式绑定
8.8 使用VIEwMETADAIIA使自己的视图看起来像一个表
8.9 索引（物化）视图
8.10 分区视图
8.11 小结
第9章 脚本和批处理
9.1 脚本的基本概念
9.2 批处理
9.2.1 批处理错误
9.2.2 使用批处理的时机
9.3 SQLCMD
9.4 动态SQL:使用ExEc命令生成即时代码
9.5 流控制语句
9.5.1 IFELSE语句
9.5.2 CASE语句
9.5.3 使用wHlLE语句进行循环
9.5.4 WArITOR语句
9.5.5 TRY／CATCH块
9.6 小结
第10章 高级编程
10.1 细看存储过程
10.1.1 输出参数
10.1.2 处理错误
10.2 表值参数（TVP）
10.3 调试
10.3.1 启动调试器
10.3.2 调试器的组件
10.3.3 启动后使用调试器
10.4 理解SQLCLR及SQLserver中的.NET编程
10.4.1 程序简介
10.4.2 编译程序集
10.4.3 将程序集上载到SQL Server上
10.4.4 创建基于程序集的存储过程
10.4.5 从程序集创建标量用户定义函数
10.4.6 创建表值函数
10.5 创建聚集函数
10.6 自定义数据类型
10.6.1 从程序集创建自己的数据类型
10.6.2 访问复杂数据类型
10.6.3 删除数据类型
10.7 小结
第11章 事务和锁
11.1 事务
11.1.1 BEGINTTRAN
11.1.2 COMMMTTRAN
11.1.3 ROLLBACKTRAN
11.1.4 SAVETRAN
11.2 SQLServer日志的工作方式
11.2.1 使用CHECKPOINT命令
11.2.2 在服务器正常关机时执行
11.2.3 在更改数据库时执行
11.2.4 在启用TrtmcateonCheckpoint选项时执行
11.2.5 在恢复时间超过设置的恢复间隔时执行
11.2.6 失败与恢复
11.2.7 隐式事务
11.3 锁和并发
11.3.1 通过锁可以防止的问题
11.3.2 可锁的资源
11.3.3 锁升级以及锁对性能的影响
11.3.4 锁模式
11.3.5 锁的兼容性
11.3.6 指定特定的锁类型——优化器提示
11.4 设置隔离级别
11.4.1 RPLAIDCOMMIllED
11.4.2 READUNCOMMITTED
11.4.3 REPEATABLEREAD
11.4.4 SERIALIZABLE
11.4.5 SNAPSHOT
11.5 处理死锁（也称作“A1205”）
11.5.1 SQLServer判断死锁的方式
11.5.2 如何选择死锁牺牲品
11.5.3 避免死锁
11.6 小结
第12章 触发器
12.1 触发器的含义
12.1.1 0N
12.1.2 WITHENCRYPTl0N
12.1.3 FORlAFTER与INSTEAD0F子句
12.1.4 WITHAPPEND
12.1.5 NOTFORREPLICATl0N
12.1.6 AS
12.2 为数据完整性规则使用触发器
12.2.1 处理源自其他表的要求
12.2.2 使用触发器检查更新的差异
12.2.3 使用触发器实现自定义错误消息
12.3 触发器的其他常见用途
12.3.1 更新摘要信息
12.3.2 向反规范化的表输入数据以用于报告
12.3.3 设置条件标志
12.4 其他触发器问题
12.4.1 嵌套触发器
12.4.2 递归触发器
12.4.3 触发器调试
12.4.4 触发器不妨碍架构的修改
12.4.5 不必删除就可以禁用触发器
12.4.6 触发器的触发顺序
12.5 INSTEAD0F触发器
……
第13章 SQL游标
第14章 Reporting Services
第15章 bcp和其他基本的大容量操作
第16章 开始集成
第17章 复制
第18章 全文搜索
第19章 安全性
第20章 设计性能卓越的数据库
第21章 性能优化工具
第22章 管理
第23章 SMO.SQL管理对象
第24章 数据仓库
第25章 保证良好的连接性
附录A 系统函数
附录B 分析元数据
附录C 基础知识