第1章 数据库开发新语言Transact.SQL 1
1.1 数据库开发语言元素 2
1.1.1 T.SQL的三大组成语言 3
1.1.2 流程控制语言与变量声明 10
1.2 查询数据的基本技巧 16
1.2.1 SELECT指令的使用技巧 17
1.2.2 用TOP获取特定数据 22
1.2.3 一般数据表表达式(CTE) 24
1.2.4 用PIVOT与UNPIVOT使输出结果转向 29
1.2.5 EXCEPT与INTERSECT的使用 31
1.2.6 用排序函数产生序号 33
1.3 数据变更的基本技巧 34
1.3.1 INSERT指令 35
1.3.2 UPDATE指令 37
1.3.3 DELETE指令 37
1.3.4 取代触发程序的OUTPUT语法 38
1.4 流程控制的专属技巧 40
1.4.1 用TRY…CATCH捕获执行中的异常情况 40
1.4.2 用CURSOR进行逐行数据的处理 45
1.5 案例分享 48
1.5.1 使用CTE与排序函数取代VB.NET以获取特定行数 48
1.5.2 使用CTE和计算多父节点的物料清单 50
第2章 活用数据类型与数据库对象 55
2.1 数据类型及其新增功能 56
2.1.1 系统数据类型 56
2.1.2 大数值数据类型 62
2.1.3 别名数据类型 63
2.2 行结构说明与数据表的管理 64
2.2.1 大数值类型与大对象类型的存储 65
2.2.2 数据表的建立 66
2.2.3 数据表的修改 68
2.3 数据分区函数与分区配置 69
2.3.1 分区函数的建立与运用 69
2.3.2 分区配置的建立 72
2.3.3 分区函数的使用示例 73
2.4 视图对象的基本概念 78
2.4.1 视图的概念与使用时机 78
2.4.2 视图的创建与管理技巧 79
2.4.3 使用视图修改数据 83
2.4.4 索引视图与分区视图 85
2.5 使用同义词解决对象的参考问题 87
2.6 案例分享 89
第3章 数据转换语言XML 95
3.1 XML语言的基本组成架构 96
3.1.1 XML的组成元素与属性 96
3.1.2 XML处理技术 99
3.2 SQL Server 2005 新增的XML技巧 105
3.2.1 XML结合数据库对象的使用 105
3.2.2 XML 架构集合 106
3.3 关系型与层次型数据的互换 109
3.3.1 查询指令配合FOR子句输出XML 110
3.3.2 用OPENXML将XML转换为层次型数据 120
3.4 Xquery 语法 123
3.4.1 用Xquery整合XML数据类型 123
3.4.2 用Xquery更新XML数据 129
3.5 使用XML 索引强化处理 131
3.6 案例分享 133
第4章 XML的高级应用——建立Web服务 139
4.1 Web服务与其应用方向 140
4.1.1 SQL Server 2005 HTTP端点的使用场合 141
4.1.2 SOAP 与WSDL的基本组成要素 143
4.2 SQL Server 2005支持的Web服务 145
4.2.1 端点的概念及建立 145
4.2.2 端点配合预存程序与使用者自定义函数 151
4.2.3 端点的安全性设定 152
4.2.4 端点数据的管理 153
4.3 活用Web服务 154
4.3.1 整合Visual Studio.Net 2003/2005建立应用程序 155
4.3.2 存取预存程序且返回输出数据 156
4.3.3 存取预存程序返回OUTPUT 158
4.3.4 存取预存程序返回RETURN 160
4.3.5 纯量函数的使用 162
4.3.6 用使用者自定义函数返回XML 164
4.3.7 返回RAISERROR错误消息 166
4.3.8 执行不定型批处理 168
4.4 案例分享 169
4.4.1 使用Visual Studio 2003与HTTP端点进行异步处理 170
4.4.2 配合Visual Studio 2005与HTTP端点进行异步处理 174
第5章 用传统T.SQL对象创建高级对象 177
5.1 使用T.SQL开发预存程序 178
5.1.1 使用预存程序的优点 178
5.1.2 程序的开发与管理 179
5.1.3 多种类型的预存程序的使用 186
5.1.4 高级预存程序的应用技巧 191
5.2 系统函数与使用者自定义函数 193
5.2.1 系统函数的分类与使用技巧 194
5.2.2用纯量值函数输出单一返回值 196
5.2.3 用数据表值的使用者自定义函数输出数据集 198
5.2.4 使用者自定义函数的使用技巧 200
5.3 使用T.SQL开发触发程序 205
5.3.1 确保数据一致性程序与触发程序 206
5.3.2 特殊触发程序的使用技巧 212
5.3.3 DDL触发程序 214
5.3.4 触发程序的管理 216
5.4 案例分享 217
5.4.1 使用Visual Basic 2005调用各种预存程序 217
5.4.2 用触发程序检查库存量后发送电子邮件 222
第6章 延伸.NET触角的SQLCLR 225
6.1 .NET Framework 2.0集成数据库的新概念 226
6.1.1 CLR的概念及其使用优势 226
6.1.2 使用CLR开发数据库对象 227
6.2 组件的注册与使用 228
6.2.1 开启CLR功能与安全性设定 229
6.2.2 .NET 组件的概念 229
6.2.3 注册组件与建立对象 230
6.3 SQLCLR组件应用于数据库对象的开发 236
6.3.1 开发SQLCLR预存程序 237
6.3.2 开发SQLCLR使用者自定义函数 239
6.3.3 开发SQLCLR触发程序 241
6.3.4 开发SQLCLR使用者自定义类型 244
6.3.5 开发SQLCLR聚合 249
6.4 案例分享 252
第7章 CLR对象的高级使用技巧 255
7.1 使用CLR预存程序链接数据库 256
7.1.1 使用CLR预存程序链接数据库的技巧 256
7.1.2 CLR预存程序链接Oracle数据库的技巧 263
7.2 使用CLR用户自定义函数的技巧 264
7.2.1 结合RegularExpressions验证电子邮件 265
7.2.2 使用TVF返回操作系统资源 266
7.3 使用CLR使用者定义类型的处理技巧 271
7.4 开发CLR对象的注意事项 275
7.5 案例分享 276
第8章 实现数据的完整性与安全性 281
8.1 数据完整性 282
8.2 声明数据完整性——条件约束 283
8.2.1 Primary Key 条件约束 283
8.2.2 UNIQUE 条件约束 284
8.2.3 CHECK条件约束 285
8.2.4 Default条件约束 286
8.2.5 Foreign Key条件约束 287
8.3 条件约束的特殊使用技巧 291
8.4 数据的安全性 293
8.4.1 数据隐码 293
8.4.2 避免数据隐码的技巧 295
8.5 数据库的加、解密机制 296
8.5.1 EncryptByAsymKey与DecryptByAsymKey操作的使用 296
8.5.2 EncryptByKey与DecryptByKey操作的使用 297
8.5.3 EncryptByCert 与DecryptByCert操作的使用 298
8.6 案例分享 299
第9章 用ADO.NET 2.0进行数据库应用程序的开发 303
9.1 SQLNCLI的作用 304
9.2 用SQL Native Client结合ADO.NET 2.0新功能 311
9.2.1 服务器列举类型 311
9.2.2 链接字符串发生器 312
9.2.3 异步处理 314
9.2.4 多重作用结果集MARS 317
9.2.5 大量复制作业 318
9.2.6 SQL Server的大数值max数据类型 322
9.2.7 更新通知SqlDependency 323
9.2.8 更改SQL Server 2005的登录密码 325
9.2.9 强化DataTable功能 328
9.2.10 用单一API存取多个提供者数据库 328
9.3 案例分享 330
第10章 松散耦合应用程序Service Broker 335
10.1 了解松散耦合程序设计架构 336
10.1.1 Service Broker的服务定义对象 337
10.1.2 Service Broker的交谈组件 338
10.1.3 Service Broker的网络和远程安全性组件 339
10.1.4 Service Broker的安全性架构 340
10.2 Service Broker 对象的建立 341
10.2.1 启用数据库的Service Broker 342
10.2.2 建立消息类型 342
10.2.3 建立合约 344
10.2.4 建立队列 345
10.2.5 建立服务 346
10.3 Service Broker 对话操作 347
10.3.1 传送消息 348
10.3.2 接收消息 349
10.4 案例分享 351
第11章 开发需求响应架构的通知应用程序 355
11.1 通知服务 356
11.1.1 系统架构的解析与设定 357
11.1.2 建立实例与应用程序 364
11.1.3 订阅管理对象 365
11.1.4 事件的收集 366
11.1.5 事件的产生与订阅的配送 367
11.2 建立通知服务应用程序 368
11.2.1 建立通知服务前端应用程序 368
11.2.2 建立事件提供者 369
11.3 案例分享 370
第12章 事务与锁定处理 375
12.1 为何需要事务与锁定 376
12.1.1 ACID概念 376
12.1.2 在企业环境中使用事务与锁定时存在的问题 378
12.2 事务的种类与应用时机 380
12.2.1 隐性事务与使用 382
12.2.2 外显事务的定义与使用 383
12.2.3 分布式事务的定义与使用 390
12.2.4 事务的高级使用技巧 395
12.3 锁定的种类与作用 395
12.3.1 何谓锁定 396
12.3.2 锁定的资源 396
12.3.3 锁定的种类 397
12.3.4 调整隔离等级 397
12.4 快照隔离 402
12.4.1 行版本控制 402
12.4.2 数据库的设定须知与程序的编写 403
12.4.3 快照隔离事务的高级使用 405
12.5 案例分享 408
第13章 多国语系 413
13.1 Unicode的概念 414
13.1.1 编码UCS.2,UTF.16,UTF.8的概念 414
13.1.2 数据库与应用软件支持Unicode的介绍 415
13.2 排序规则设定语系 419
13.2.1 何谓排序规则 419
13.2.2 四种排序规则运用的范围 420
13.2.3 排序规则结尾附加标记的高级应用 426
13.2.4 字符串处理转换函数 430
13.3 排序规则的应用技巧 432
13.3.1 用BCP命令行程序处理Unicode 432
13.3.2 Bulk Insert语句处理Unicode 433
13.4 案例分析 434
13.4.1 数据库多国语系警示消息的多语系设定 434
13.4.2 集成CLR进行繁体与简体的转换 437
第14章 索引的建立与调试 439
14.1 索引的概念及种类的说明 440
14.2 数据存取与索引关联的说明 441
14.2.1 堆栈 442
14.2.2 丛集索引 443
14.2.3 非丛集索引 445
14.3 建立各种索引与索引信息 447
14.3.1 唯一索引 448
14.3.2 复合索引 451
14.3.3 内含行的索引 451
14.3.4 计算列的索引 454
14.3.5 数据分割索引 455
14.4 优化索引性能的管理技巧 457
14.4.1 索引信息的查询 458
14.4.2 索引片段的管理 459
14.5 案例分享 461
展开