《Microsoft SQL Server 2005技术内幕 T-SQL程序设计》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)本-甘(Ben-gan,I.),(美)萨卡(Sarka,D.),(美)沃尔特(Wolter,R.)著;赵立东译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121042975
  • 页数:514 页
图书介绍:本书详细介绍了T-SQL的内部构造,包含了非常全面的编程参考。数据库开发人员和DBA可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的问题。本书涵盖了T-SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户、使用Service Broker来控制数据库应用程序中的异步处理等。

第1章 数据类型相关的问题,XML和CLR UDT 1

1.1 DATETIME数据类型 2

DATETIME的存储格式 2

时间处理 3

Datetime相关的查询问题 8

1.2 与字符相关的问题 25

模式匹配 26

区分大小写(Case-Sensitive)的筛选器 31

1.3 大型对象(Large Object,LOB) 32

MAX说明符 32

BULK行集提供程序 34

1.4 隐式转换(Implicit Conversion) 36

标量表达式 36

筛选表达式 37

1.5 基于CLR的用户定义类型 40

UDT理论简介 41

开发UDT 48

1.6 XML数据类型 65

关系数据库中的XML支持 65

什么时候应该使用XML代替关系表现形式? 67

数据库中的XML序列化对象 68

使用开放架构(Open Schema)的XML 75

作为存储过程参数的XML数据类型 81

Xquery修改语句 82

1.7 结论 83

第2章 临时表和表变量 85

2.1 临时表 86

局部临时表 86

全局临时表 94

2.2 表变量 96

限制条件 96

tempdb 97

范围和可见性 97

事务上下文 97

统计信息 98

2.3 tempdb相关的注意事项 101

2.4 表表达式 102

2.5 比较临时对象 103

2.6 综合练习——关系分区(Relational Division) 104

2.7 结论 109

第3章 游标 111

3.1 使用游标 112

3.2 游标开销 114

3.3 单独处理每一行 115

3.4 按顺序访问 116

自定义聚合 116

连续聚合 118

最大并发会话 122

匹配问题 131

3.5 结论 138

第4章 动态SQL 139

4.1 EXEC 141

一个简单的EXEC示例 141

EXEC不提供接口 142

串联变量 145

EXEC AT 146

4.2 sp_executesql 149

sp_executesql接口 149

语句限制 152

4.3 环境设置 153

4.4 使用动态SQL 153

动态的维护操作 153

存储计算 156

动态筛选器 160

动态PIVOT/UNPIVOT 166

4.5 SQL注入 172

SQL注入:在客户端动态构建代码 172

SQL注入:在服务器端动态构建代码 173

防止SQL注入 177

4.6 结论 179

第5章 视图 181

5.1 什么是视图? 181

5.2 视图中的ORDER BY 183

5.3 刷新视图 187

5.4 模块化方法 189

5.5 更新视图 198

5.6 视图选项 202

ENCRYPTION 202

SCHEMABINDING 203

CHECK OPTION 204

VIEW_METADATA 205

5.7 索引视图(Indexed View) 206

5.8 结论 211

第6章 用户定义函数 213

6.1 关于UDF 214

6.2 标量UDF 214

T-SQL标量UDF 215

性能问题 217

在约束中使用UDF 219

CLR标量UDF 222

SQL签名(SQL Signature) 231

6.3 表值UDF 239

内联表值UDF 239

拆分数组(Split Array) 242

多语句表值UDF 248

6.4 逐行调用UDF 252

6.5 结论 255

第7章 存储过程 257

7.1 存储过程的种类 258

用户定义存储过程 258

特殊存储过程 262

系统存储过程 264

其他类型的存储过程 266

7.2 存储过程接口 267

输入参数 267

输出参数 269

7.3 解析 273

7.4 编译、重新编译和重用执行计划 275

重用执行计划 275

重新编译 281

参数嗅探问题 284

7.5 Execute As 288

7.6 参数化排序 289

7.7 动态Pivot 294

7.8 CLR存储过程 305

7.9 结论 313

第8章 触发器 315

8.1 AFTER触发器 316

inserted和deleted表 316

取得受影响的行数 318

识别触发器的类型 321

对特殊语句不引发触发器 324

嵌套和递归 328

UPDATE和COLUMNS_UPDATED 329

审核示例 333

8.2 INSTEAD OF触发器 335

逐行触发器 336

应用于视图 339

自动处理序列 342

8.3 DDL触发器 344

数据库级触发器 346

服务器级触发器 350

8.4 CLR触发器 351

8.5 结论 360

第9章 事务 361

9.1 什么是事务? 362

9.2 锁 364

9.3 隔离级别 370

未提交读 371

已提交读 372

可重复读 373

可串行读 374

新的隔离级别 375

9.4 保存点 381

9.5 死锁 383

简单的死锁 384

因缺少索引导致的死锁 385

单个表的死锁 388

9.6 结论 390

第10章 错误处理 391

10.1 SQL Server 2005之前版本的错误处理 391

10.2 SQL Server 2005中的错误处理 395

TRY/CATCH 395

事务中的错误 399

死锁和更新冲突 404

10.3 结论 409

第11章 Service Broker 411

11.1 会话对话 411

会话 412

约定(Contract) 417

DEFAULT 418

队列(Queue) 418

服务(Services) 423

发起和结束对话 424

会话端点(Conversation Endpoint) 426

会话组(Conversation Group) 428

发送和接收 430

11.3 简单的对话 434

有害消息(Poison Message) 442

11.4 对话安全 443

非对称密钥认证 444

配置对话安全 445

11.5 路由和分发 448

相邻Broker协议(Adjacent Broker Protocol) 449

路由(Route) 455

11.6 场景 460

可靠的SOA 460

异步处理 461

11.7 哪里适合使用Service Broker 462

Service Broker是什么 462

Service Broker不是什么 462

Service Broker和MSMQ 462

Service Broker和BizTalk 463

Service Broker和Windows Communication Foundation 463

11.8 结论 464

附录A CLR程序指南 465

A.1 创建CLRUtilities数据库:SQL Server 466

A.2 部署:Visual Studio 466

A.3 部署和测试:Visual Studio和SQL Server 467

索引 491

中英文术语对照表 509

关于作者 513