书籍详情

Microsoft SQL Server 2005 T-SQL & .NET高级编程(第3版)

Microsoft SQL Server 2005 T-SQL & .NET高级编程(第3版)

作者:(美)Dejan Dejan Šunderić

出版社:清华大学出版社

出版时间:2008-05-01

ISBN:9787302173403

定价:¥78.00

购买这本书可以去
内容简介
  为了开发出复杂的存储过程以检索、操作、更新和删除数据,本书介绍并描述了您所需掌握的关键概念、技术和最佳实践,以使您通过SQL Server自带的Transact—SQL和.NET CLR语言充分利用存储过程。在本书中,您将学到如何将有效的Transact.-SQL存储过程结合到客户端与中间件代码中,以及如何生成将被编译到CLR存储过程中的CLR方法。本书内容丰富、指导性强,是所有SQL Server 2005开发人员的必备参考。本书主要内容●使用批处理、脚本与事务来组合和执行T-SQL语句●创建用户自定义的、系统的、扩展的、临时的、全局临时的和远程的存储过程●使用ADO.NET实现数据库访问●用C#和Visual Basic.NET开发与管理存储过程●创建CLR用户自定义函数与触发器●实现可靠的调试、错误处理技术和安全度量●在类似于Visual SourceSafe的储存库中管理源代码●为Web搜索引擎创建存储过程●使用系统和扩展存储过程与SQL Server环境进行交互
作者简介
  Dejan Sunderic,微软认证的解决方案专家(MCSD)和数据库管理员(MCDBA),是Trigon Blue,Inc.的首席顾问,也是Toronto SQL Server User Group的总裁。他专门研究SQL Server和Windows平台上的数据库管理、部署及应用程序开发。Dejan曾经参与的项目涉及B2C和B2B电子商务、金融、文档管理、抵押、资产管理、保险、房地产、IT供应链、过程控制、通信、数据仓库和OLAP系统等多个领域。担任过数据库架构师、数据库和应用程序开发人员、数据库管理员、开发组组长及项目经理。
目录
第1章  SQL Server 2005环境
与工具    1
1.1  SQL Server 2005工具    2
1.1.1  SQL Server Configuration
Manager    3
1.1.2  SQL Server Management
Studio    6
1.1.3  SQLCMD实用程序    10
1.1.4  SQL Server Profiler    11
1.1.5  帮助文档和SQL Server
Books Online    11
1.2  Management Studio中的
基本操作    12
1.2.1  存储结构的定义    12
1.2.2  Management Studio中存储
过程的执行    12
1.2.3  编辑存储过程    15
1.2.4  创建存储过程    15
1.2.5  在Query窗口中编辑存储
过程    17
1.2.6  语法错误    19
1.2.7  查看和编辑表    21
1.2.8  修改表结构    23
第2章  存储过程设计的一些概念    25
2.1  存储过程的剖析    26
2.1.1  组成部分    26
2.1.2  功能    29
2.1.3  语法    35
2.2  存储过程的类型    37
2.3  管理存储过程    38
2.3.1  列出存储过程    38
2.3.2  查看存储过程的代码    39
2.3.3  重命名存储过程    40
2.3.4  删除存储过程    41
2.3.5  列出被依赖和依赖对象    41
2.4  存储过程在数据库应用程序
开发中的作用    43
2.4.1  增强数据完整性    43
2.4.2  复杂业务规则和约束的
一致实现    44
2.4.3  模块化设计    44
2.4.4  可维护性    44
2.4.5  降低的网络通信量    44
2.4.6  较快的执行    45
2.4.7  安全性的增强    45
第3章  基本Transact-SQL编程
结构    47
3.1  T-SQL标识符    48
3.2  数据库对象限定符    49
3.3  数据类型    51
3.3.1  字符串型    52
3.3.2  Unicode字符串型    53
3.3.3  日期和时间型    54
3.3.4  整型    55
3.3.5  近似数值型    56
3.3.6  精确数值型    56
3.3.7  货币型    57
3.3.8  二进制型    57
3.3.9  特殊类型    58
3.3.10  Transact-SQL用户自定义
数据类型    61
3.4  变量    62
3.4.1  局部变量    62
3.4.2  全局变量    66
3.4.3  表变量    68
3.5  流程控制语句    69
3.5.1  注释    70
3.5.2  语句块:Begin…End    72
3.5.3  条件执行:If语句    73
3.5.4  循环:While语句    77
3.5.5  无条件执行:GoTo语句    79
3.5.6  调度执行:WaitFor语句    80
3.6  游标    81
3.6.1  Transact-SQL游标    82
3.6.2  与游标相关的语句和函数    85
3.6.3  使用游标的问题    86
3.6.4  游标的正确用法    87
第4章  函数    89
4.1  函数的用法    90
4.1.1  用函数来选择和赋值    90
4.1.2  作为选择条件的一部分    91
4.1.3  在表达式中使用函数    91
4.1.4  作为Check和Default约束    91
4.1.5  取代表    92
4.2  函数的类型    93
4.2.1  标量函数    93
4.2.2  行集函数    120
第5章  复合Transact-SQL结构:
批处理、脚本和事务    127
5.1  批处理    128
5.1.1  使用批处理    130
5.1.2  批处理与错误    130
5.1.3  DDL批处理    133
5.1.4  自给自足的内容    133
5.2  脚本    134
5.3  事务    137
5.3.1  自动提交事务    137
5.3.2  显式事务    138
5.5.3  隐式事务    140
5.3.4  事务处理体系结构    140
5.3.5  嵌套事务    141
5.3.6  命名事务    145
5.3.7  保存点    146
5.3.8  加锁    148
5.3.9  分布式事务    152
5.3.10  与事务相关的典型问题    154
第6章  错误处理    157
6.1  Raiserror语句    158
6.2  使用错误处理    160
6.3  添加错误处理代码的原因    160
6.4  基于@@Error的错误处理    161
6.5  Try-Catch语句    163
6.5.1  捕获的错误类型    164
6.5.2  Catch块的函数    166
6.5.3  带显式事务的Try-Catch
语句    167
6.5.4  死锁重试    170
6.5.5  Try-Catch语句嵌套    174
6.5.6  错误处理体系结构:
使用Try-Catch语句    174
6.6  Xact_Abort选项的设置    175
6.6.1  错误处理体系结构:基于
Set Xact_Abort On设置    176
6.6.2  错误处理体系结构:设置
Xact_Abort且事物嵌套
为零    180
第7章  特殊存储过程类型    187
7.1  用户自定义存储过程    188
7.2  系统存储过程    188
7.3  CLR存储过程    189
7.4  扩展存储过程    190
7.4.1  扩展存储过程的设计    190
7.4.2  注册扩展存储过程    194
7.5  临时存储过程    196
7.6  全局临时存储过程    197
7.7  远程存储过程    197
第8章  视图    199
8.1  标准SQL视图的设计    200
8.1.1  语法    201
8.1.2  Enterprise Manager中的
视图设计    202
8.1.3  安全性    202
8.1.4  执行计划中的标准SQL
视图    203
8.1.5  视图的限制    203
8.1.6  用视图编辑数据    204
8.2  动态视图    205
8.3  临时视图—— 通用表表达式    205
8.3.1  非递归CTE的限制    206
8.3.2  递归CTE    206
8.4  INFORMATION_SCHEMA
视图    208
8.5  索引视图    209
8.5.1  索引视图限制    209
8.5.2  执行计划中的索引视图    210
8.5.3  视图上的非群集索引    210
8.5.4  性能影响    211
8.6  分区视图    211
8.6.1  水平和垂直分区    211
8.6.2  分布式分区视图    213
8.6.3  分布式分区视图的
执行计划    218
8.6.4  可更新的分布式分区视图    221
8.6.5  分布式系统的稳定性
和性能    222
8.6.6  简单的联合服务器    223
8.7  使用SQL视图    223
8.7.1  导出和导入    223
8.7.2  安全性实现    223
8.7.3  降低复杂性    224
8.7.4  性能提升    226
第9章  触发性    227
9.1  DML触发器    228
9.1.1  After触发器的物理设计    228
9.1.2  插入和删除虚拟表    229
9.1.3  触发器激活条件    231
9.1.4  After触发器的完整语法    232
9.1.5  处理多条记录上的修改    235
9.1.6  嵌套触发和递归触发    236
9.1.7  After触发器限制    236
9.1.8  Instead-of触发器    238
9.1.9  视图上的触发器    239
9.1.10  DML触发器的执行次序    241
9.2  DDL触发器    242
9.2.1  DDL触发器的作用域和
事件    243
9.2.2  EventData()函数    244
9.2.3  DDL触发器的语法    245
9.3  管理触发器    246
9.3.1  在Management Studio中
管理DML触发器    246
9.3.2  在Management Studio中
管理DDL触发器    247
9.3.3  用Transact-SQL语句管理
触发器    247
9.4  触发器的设计建议    250
9.4.1  尽可能快地退出触发器    250
9.4.2  简化触发器的代码    251
9.4.3  按功能实现触发器    252
9.4.4  不要在触发器内使用
Select和Print    252
9.4.5  根本不要使用触发器    252
9.5  触发器中的事务管理    252
9.6  使用触发器    253
9.6.1  级联删除    254
9.6.2  聚集    257
9.6.3  增强不同服务器或数据库上
的对象的模式完整性    259
第10章  用户自定义函数    263
10.1  标量用户自定义函数的设计    264
10.1.1  副作用    265
10.1.2  内置函数的使用    266
10.1.3  加密    266
10.1.4  模式绑定    266
10.2  表-值用户自定义函数    267
10.3  在Management Studio中管理
用户自定义函数    271
第11章  SQL Server 2005中的
.NET编程基础    273
11.1  非托管和托管代码    274
11.2  公共语言运行库    274
11.3  SQL Server 2005中的CLR
集成    275
11.3.1  优缺点    276
11.3.2  支持和不支持的功能    276
11.3.3  所需最小空间    277
11.4  Visual Studio 2005中CLR
数据库对象的 开发、部署
和使用    278
11.5  不使用Visual Studio 2005
时CLR数据库对象
的开发和部署    281
11.5.1  开发代码    282
11.5.2  编译程序    282
11.5.3  向SQL Server数据库中
加载程序集    284
11.5.4  创建SQLCLR数据库
对象    285
11.6  为程序集和CLR数据库
对象编目录    286
11.6.1  为程序集编目录    286
11.6.2  为过程编目录    287
11.6.3  .NET Framework的版本    289
第12章  CLR存储过程开发基础    291
12.1  CLR存储过程的结构    294
12.2  从CLR过程中访问数据    295
12.3  使用存储过程的基本操作    296
12.3.1  返回值    296
12.3.2  连接上下文    297
12.3.3  返回结果    298
12.3.4  返回自定义记录    300
12.3.5  CLR存储过程中的
参数    302
12.4  带正规ADO.NET对象
的操作    302
12.4.1  SqlCommand    302
12.4.2  SqlDataReader    304
12.5  管理LOB参数    305
第13章  CLR函数与触发器    311
13.1  CLR函数    312
13.1.1  标量-值CLR函数    312
13.1.2  SqlFunction属性    314
13.1.3  表-值CLR函数    316
13.2  CLR触发器    327
13.2.1  支持的特性    327
13.2.2  DML触发器的创建    327
13.2.3  DDL触发器的创建    332
第14章  CLR数据库对象高级主题    337
14.1  CLR用户自定义类型(UDT)    338
14.1.1  托管UDT的结构    339
14.1.2  不使用Visual Studio 2005
部署CLR UDT    346
14.1.3  使用CLR用户自定义
类型    346
14.1.4  跨数据库的用户自定义
类型    353
14.2  是否使用UDT    354
14.3  用户自定义聚合CLR函数    355
14.4  CLR代码中的事务    365
14.4.1  使用TransactionScope
类    365
14.4.2  事务选项    367
14.4.3  分布式事务    368
14.4.4  显式事务    370
14.4.5  新事务泛型的优点    372
14.5  是否设计CLR(设计与性能
考虑)    372
14.6  警告    373
第15章  高级存储过程编程    375
15.1  动态构造的查询    376
15.1.1  执行字符串    376
15.1.2  通过表单查询    377
15.1.3  数据脚本生成器    379
15.1.4  使用sp_executesql存储
过程    384
15.1.5  安全隐患    385
15.2  使用timestamp值的
乐观锁    388
15.2.1  timestamp数据类型    389
15.2.2  TSEqual()函数    391
15.3  全文本搜索和索引    392
15.4  嵌套存储过程    393
15.4.1  用临时表向嵌套存储
过程传递记录集    393
15.4.2  用游标向嵌套存储过程
传递记录集    396
15.4.3  如何处理存储过程的
结果集    397
15.5  使用标识值    403
15.5.1  标准问题和答案    403
15.5.2  标识值与触发器    404
15.6  GUID    405
15.7  带Min()或Max()函数
的循环    407
15.8  带sp_MSForEachTable和
sp_MSForEachDb 的循环    408
15.9  特性管理    410
第16章  调试    413
16.1  什么是bug    414
16.2  调试过程    414
16.2.1  标识阶段    414
16.2.2  解决阶段    416
16.3  调试工具与技术    417
16.4  调试CLR数据库对象    421
16.5  简单的调试器    424
16.5.1  生产环境中的执行    427
16.5.2  嵌套存储过程    428
16.5.3  输出子句    428
16.6  SQL Profiler    429
16.7  典型错误    433
16.7.1  处理空值    433
16.7.2  从结果集中为变量赋值    434
16.7.3  没有记录受影响    434
16.7.4  错误的大小或数据类型    434
16.7.5  默认长度    435
16.7.6  触发器的回退    435
16.7.7  警告和较低优先级
的错误    435
16.7.8  返回代码与Raiserror
语句的使用    436
16.7.9  嵌套注释    436
16.7.10  延迟名称解析    436
16.7.11  游标    437
16.7.12  过分自信    437
第17章  源代码管理    439
17.1  Microsoft Visual SourceSafe
介绍    440
17.2  管理Visual SourceSafe
数据库    441
17.3  在Visual Studio .NET中
向Visual SourceSafe 添加
数据库对象    442
17.4  在Visual Studio .NET中
管理Create脚本    444
17.5  Visual SourceSafe Explorer    445
17.5.1  历史    446
17.5.2  标签与版本    448
17.6  向Visual SourceSafe添加
数据库对象:传统方法    449
17.6.1  用Script Wizard创建
脚本    449
17.6.2  用TbDbScript创建
脚本    451
17.6.3  用TbDir2Vss.vbs向
Visual SourceSafe中
添加脚本    453
第18章  数据库部署    455
18.1  整个数据库的部署:传统
方法    456
18.1.1  在Transact-SQL中附着
与分离数据库    457
18.1.2  在Management Studio中
附着和分离    458
18.1.3  备份与恢复    459
18.1.4  潜在的问题    459
18.2  单个对象的部署    460
18.2.1  部署脚本:传统方法    460
18.2.2  脚本化数据:传统方法    460
18.2.3  在Visual Studio .NET中
脚本化数据    461
18.2.4  部署脚本:传统方法    462
18.2.5  在Visual Studio .NET中
部署Create脚本    469
18.2.6  递增的构件:传统方法    471
18.2.7  Visual Studio .NET中的
递增的构件    472
第19章  安全    473
19.1  安全体系结构    474
19.1.1  身份验证与授权    474
19.1.2  主体    474
19.1.3  可保护对象    475
19.1.4  访问级别    475
19.1.5  角色    480
19.1.6  所有权链    482
19.1.7  交叉数据库拥有者链    482
19.1.8  执行环境上下文的
切换    483
19.2  实现安全性    483
19.2.1  身份验证模式的选择    483
19.2.2  管理登录名    484
19.2.3  授予数据库访问权限    486
19.2.4  赋予权限    488
19.3  登录名与用户名的同步    490
19.4  用存储过程、用户自定义
函数和视图管理应用
程序安全    493
19.5  用代理用户管理应用程序
安全    496
19.6  用应用程序角色管理应用
程序安全    496
第20章  Web搜索引擎的
存储过程    499
20.1  环境特征    500
20.2  一个简单的解决方案    500
20.3  缺点    501
20.4  可用的解决方案    502
20.4.1  结果分割    503
20.4.2  快速查询    511
20.4.3  高级查询    515
20.4.4  新的解决方案:行版本    518
第21章  SQL Server环境的
交互作用    525
21.1  运行程序    526
21.2  运行Windows脚本文件    527
21.3  OLE Automation/COM对象
的执行    527
21.4  数据类型转换    530
21.5  运行SQL Server 2005 Intergration
Services(SSIS)包    531
21.6  运行DTS 包    531
21.7  在DTS包中实现循环    532
21.8  与NT注册表交互作用    533
21.8.1  xp_regread    534
21.8.2  xp_regwrite    534
21.9  作业    535
21.9.1  作业管理    535
21.9.2  Job Scheduler的
替换方法    539
21.9.3  维护作业的存储过程    540
21.9.4  操作员和警报    543
21.10  电子邮件    543
21.10.1  Database Mail    544
21.10.2  配置Database Mail    544
21.10.3  发送电子邮件    546
21.10.4  检查状态    547
21.11  将存储过程作为Web服务
提供    547
附录A  命名约定    549
附录B  存储过程编译、存储和
重用    559
附录C  SQL Server 2005中
的数据类型    571

猜您喜欢

读书导航