
| 第1部分 基础 第1章 存储过程初步 1.1 什么是存储过程 1.2 存储过程的优点 1.3 创建存储过程 1.3.1 滞后名称解析与一个有趣的异常 1.3.2 列表显示一个存储过程 1.3.3 权限与限制 1.3.4 创建忠告 1.4 修改存储过程 1.5 执行存储过程 1.5.1 insert与exec 1.5.2 执行计划的编译与执行 1.5.3 监视执行 1.5.4 经由远程过程调用(rpc)执行存储过程 1.5.5 临时过程 1.5.6 系统过程 1.5.7 系统对象与系统过程 1.6 扩展的存储过程 1.7 环境问题 .1.8 参数 1.8.1 返回状态码 1.8.2 输出参数 1.8.3 列表显示过程参数 1.8.4 通用参数注解 1.8.5 自动变量亦称系统函数 1.9 流程控制语言 1.10 出错 1.10.1 出错消息 1.10.2 raiserror 1.11 嵌套 1.12 递归 1.13 小结 第2章 推荐的约定 2.1 源代码格式化 2.1.1 大写 2.1.2 缩进与空白 2.1.3 begin/end 2.1.4 圆括号 2.1.5 水平间隔 2.1.6 列与表的别名 2.1.7 ddl 2.1.8 拥有者限定 2.1.9 缩写与可选关键字 2.1.10 参数传递 2.1.11 名称选择 2.2 编码约定 2.2.1 脚本建议 2.2.2 存储过程与函数 2.2.3 表与视图 2.2.4 transact-sql 2.3 小结 第3章 常见设计模式 3.1 简约原则 3.2 惯例 3.2.1 元数据查询 3.2.2 对象创建 3.2.3 设置数据库上下文 3.2.4 清空表 3.2.5 复制表 3.2.6 变量赋值 3.2.7 循环 3.2.8 空值支持 3.2.9 最顶层行检索 3. 3 设计模式 3.3.1 迭代程序 3.3.2 intersector 3.3.3 qualifier 3.3.4 executor 3.3.5 convevor 3.3。6 restorer 3.3.7 原型 3.3.8 singleton 3.3.9 其他模式 3.4 小结 第4章 源代码管理 4.1 源代码管理的好处 4.2 dt过程 4.3 最优实践 4.3.1 在脚本中保存对象 4.3.2 维护分离的脚本 4.3.3 不要使用unicode 4.3.4 使用标志表示版本 4.3.5 使用关键字给文件签名 4.3. 6 除非绝对必须,不要加密 4.4 来自于query analyzer的版本控制 4.5 使用版本控制的自动脚本生成 4.5.1 ggsqlbuilder 4.5.2 ggsqlbuilder如何运作 4.5.3 脚本生成工具的优点 4.5.4 ggsqlbuilder如何选择并排列sql脚本 4.6 小结 第5章 数据库设计 5.1 通用方法 5.2 建模工具 5.3 范例项目 5.4 五个过程 5.5 考察五个阶段 5.5.1 分析 5.5.2 设计 5.5.3 构造 5.5.4 数据库开发的复杂性 5.5.5 应用数据库理论 5.5.6 定义应用程序的目标 5.5.7 定义应用程序的功能 5.5.8 设计数据库基础和应用过程 5,6 业务过程建模 5.6.1 开始业务过程建模 5.6.2 增加外部实体 5. 3 增加过程 5.6.4增加存储 5.6.5 增加流程对象 5.6.6 增加数据结构 5.7 实体-关系建模 5.7.1 e-r图的类型 5.7.2 e-r建模术语 5.7.3 建立e-r模型 5.7.4 规范化 5.7.5 完成模型 5.8 关系型数据建模 5.8.1 逻辑数据建模术语 5.8.2 从e-r图转向关系模型 5.8.3 构造数据字典 5.8.4 使用数据字典 5.8.5 确定列的大小 5.8.6 设计描述 5.8.7 外部键生成 5.8.8 模型完整性验证 5.8.9 ddl生成 5.8.10 enterprise manager的database diagrams 5.9 小结 第6章 数据容量 6.1 数据生成方法 6.1.1 交叉联接 6.1.2 random() 6.1.3 doubling 6.1.4 insert...exec 6.1.5 sp_generate_test_data 6.2 速度 6.3 小结 第2部分 目 标 第7章 错误处理 7.1 错误报告 7.1.1 raiserror 7.1.2 xp-logevent 7.2 处理错误 7.2.1 @@error 7.2.2 用户错误 7.2.3 致命错误 7.2.4 看上去怪癖其实不然的问题 7.2.5 @@rowcount 7.2.6 错误和事务管理 7.2.7 set xact abort 7.3 小结 第8章 触发器 8.1 决定有什么变化 8.2 管理连续值 b.3 触发器限制 8.4 instead of触发器 8.5 触发器和审计 8.6 事务 8.7 执行 8.8 调用存储过程 8.9 嵌套的触发器 8.10 禁用触发器 8.11 最优实践 8.12 小结 第9章 视图 9.1 元数据 9.2 约束 9.2.1 ansi-nulls和quoted-identifier 9.2.2 dml约束 9.3 ansi sql模式视图 9.3.1 创建自己的infofmatlon schema视图 9.3.2 创建自己的information-schema用户定义函数 9.3.3 从视图调用存储过程 9.4 可更新的视图 9.5 with check option子句 9.6 派生表 9.7 参数化视图 9.8 动态视图 9.9 分区视图 9.9.1 between和分区视图查询 9.9.2 分布式分区视图 9.10 索引视图 9.10.1 优化程序使用索引视图 9.10.2 在sql server的其他版本上使用索引视图 9.11 设计模块化索引视图 9.12 小结 第10章 用户定义的函数 10.1 标量函数 10.2 表值函数 10.3 内联函数 10.4 限制 10.5 元数据 10.6 创建用户自己的系统函数 10.7 udf详尽说明书 10.7.1 改进的soundex()函数 10.7.2 统计函数 10.7.3 递归 10.7.4 参数化udf 10.8 小结 第3部分 html、xml和.net 第11章 html 11.1 起源 11.2 从transact-sql制作html 11.2.1 表 11.2.2 列标题 11.3 从sp_makewebtask制作html 11.3.1 超链接 11.3.2 模板 11.4 小结 第12章 xml入门 12.1 注意 12.2 xml:概观 12.3 html:简易的代价 12.4 简史 12;5 xml与html比较:一个例子 12.6 文档类型定义 12.7 xml架构 12.8 扩展样式表语言转换 12.9 文档对象模型 12.10 工具 12.11 小结 第13章 xml和sql server2 http查询 13.1 基于http访问sql server 13.2 url查询 13.2.1 特殊字符 13.2.2 样式表 13.2.3 内容类型 13.2.4 非xml结果 13.2.5 存储过程 13.3 模板查询 13.3.1 样式表 13.3.2 在客户上应用样式表 13.3.3 客户端模板 13.4 小结 第14章 xml和sql server:获取数据 14.1 select…for xml 14.2 raw模式 14.3 auto模式 14.4 元素 14.5 explicit模式 14.5.1 指令 14.5.2 建立数据关系 14.6 映射架构 14.7 小结 第15章 xml-和sql server: openxml 15.1 标记参数 15.2 边缘表格式 15.3 用openxml()插入数据 15.4 web版本1 15.4.1 updategrams 15.4.2 xml批量加载 15.5 限制 15.5.1 sp_xml_concat 15.5.2 sp_run_xml_proc 15.6 小结 第16章.net和未来革命 16.1 .net:应用程序开发的未来 16.2 什么是.net 16.3 打击microsoft 16.4 microsoft偏执 16.5 小结 第4部分 高 级 篇 第17章 性能 17.1 索引 17.1.1 存储 17.1.2 覆盖索引 17.1.3 性能问题 17.1.4 索引交集 17.1.5 索引碎片 17.1.6 碎片整理 17.1.7 视图和计算列上的索引 17.1.8 前提 17.1.9 锁定和索引 17.2 统计 17.2.1 基数 17.2.2 密度 17.2.3 选择性 17.2.4 性能问题 17.2.5 存储 17.2.6 列统计 17.2.7 列表统计 17.2.8 更新统计 17.2.9 sp_showstatdate 17.3 查询优化 17.3.1 普通计划优化 17.3.2 简化 17.3.3 统计数字加载 17.3.4 基于代价的优化 17.3.5 完全优化 17.3.6 选择性评估 17.3.7 优化搜索参数 17.3.8 联接顺序和类型选择 17.3.9 子查询和联接两者取- 17.3.10 逻辑运算符和物理运算符 17.4 小结 第18章 调试与配置 18.1 调试 18.1.1 设置与安全问题 18.1.2 建议与警告 18.1.3 步骤 18.1.4 没有网络的调试 18.1.5 调试触发器和用户定义函数 18.2 配置 18.2.1 开始跟踪 18.2.2 跟踪与查看 18.2.3 命令行参数 18.2.4 一般建议与警告 18.2.5 重放跟踪 18,2.6 加载跟踪文件到表 18.2.7 跟踪文件发布为xk见 18.2.8 分组profiler数据 18.2.9 odbc跟踪 18.3 应力测试 18.4 小结 第19章 自动化 19.1 com简介 19.1.1 com之前 19.1.2 com的曙光 19.1.3 基本体系结构 19.2 sql server和com自动化 19.2.1 sp_oa过程 19.2.2 sp_checkspelling 19.2.3 sp_exportable 19.2.4 sp_importable 19.2.5 sp_getsqlregistry 19.3 小结 第20章 扩展存储过程 20.1 开放数据服务 20.1.1 启动代码 20.1.2 扩展过程活动 20.1.3 返回数据 20.2 一个简单的例子 20.3 一个更好的例子 20.4 使扩展过程更容易使用 20.5 调试扩展过程 20.6 隔离扩展过程 20.7 xp_setpriority 20.8 小结 第21章 管理存储过程 21.1 sp_readtextfile 21.2 sp_diff 21.3 sp_generate_script 21.4 sp_start_trace 21.5 sp_stop_trace 21.6 sp_list_trace 21.7 sp_proc/runner 21.8 sp_create_backup_job 21.9 sp_diffdb 21.10 小结 第22章 非文档化的transact sql 22.1 怎么定义非文档化 22.2 非文档化的过程 22.2.1 sp_checknames[@mode] 22.2.2 sp_delete_backuphistory@oldest_date 22.2.3 sp_enumerrorlogs 22.2.4 sp_enumoledbdatasources 22.2.5 sp_fixindex@dbname, @tabname, @indid 22.2.6 sp_gettypestring@tabid, @colid, @typestring output 22.2.7 sp_ms_marksystemobject@objname 22.2.8 sp_ms_upd_sysobj_category@pseqmode integer 22.2.9 sp_msaddguidcol@source_owner, @source_table 22.2.10 sp_msaddguidindex@source_owner, @source_table 22.2.11 sp_msaddlogin_implicit_ntlogin@loginname 22.2.12 sp_msadduser_implicit_ntlogin@ntname 22.2.13 sp_mscheck_uid_owns_anything@uid 22.2.14 sp_msdbuseraccess@mode='perm'ldb', @qual=db name mask 22.2.15 sp_msdbuserpriv@mode='perm'l'serv'i'ver'i'role' 22.2.16 sp_msdependencies@objname,@objtype, @flags int,@objlist 22.2.17 sp_msdrop_object[@object_id][,@object_name] [,@object_owner] 22.2.18 sp_msexists_fiie@full_path, @filename 22.2.19 sp_msforeachdb@commandl@replacechar='?'[,@command2][,@command3][,@precommand][,@postcommand] 22.2.20 sp_msforeachtable@commandl@replacechar='?'[,@com mand2][,@command3][,@whereand][,@precommand][,@postc ommandl 22.2.21 sp_msget_oledbinfo@server[,@infobfpe][,@iogin] [,@password 22.2.22 sp_msget_qualified_name@object_id, @qualified_nameout 22.2.23 sp_msget_type@tabid,@colid,@colname out,@typeout 22.2.24 sp_msguidtostr@guid, @mystrout 22.2.25 sp_mshelpindex@tablename[,@indexname][,@flags] 22.2.26 sp_mshelptype[@typename][,@flags='sdt'l',uddt'inull] 22.2.27 sp_msindexspace@tablename[,@index_name] 22.2.28 sp_msis_pk_col@source_table, @colname, @indid 22.2.29 sp_mskilldb@dbname 22.2.30 sp_msloginmappings@loginname 22.2.31 sp_mstable_has_unique_index@tabod 22.2.32 sp_mstablekeys ltablename][,@colname][,@type] [,@keyname]l@flags] 22.2.33 sp_mstablerefs@tabname,@type=n'actualtables',@direction=n'primag',@reftable 22.2.34 sp_mstablespace[@name] 22.2.35 sp_msunc_to_drive@unc_ath,@local_server,@]local_path out 22.2.36 sp_msuniquecolname table_name,@base_colname,@unique_colname out 22.2.37 sp_msuniquename@seed,@start 22.2.38 sp_msuniqueobjectname@name_in,@name_outout 22.2.39 sp_msuniquetempname@name_in,@name_outout 22.2.40 sp_readerrorlog[@lognuml 22.2.41 sp_remove_tempdb_file@filename 22.2.42 sp_set_local_timel@server_name][,@adjustment_in_minutes] (对win9x) 22.2.43 sp_tempdbspace 22.2.44 xp_dirtree'rootpath' 22.2. 45 xp_dsninfo@systemdsn 22.2.46 xp_enum_oledb_providers 22.2.47 xp_enumdsn 22.2.48 xp_enumerrorlogs 22.2.49 xp_execresultset'code query','database' 22.2.50 xp_fileexi'st,filename' 22.2.51 xp_fixeddrives 22.2.52 xp_get_mapi_default_profile 22.2.53 xp_get_mapi_profiles 22.2.54 xp_getfiedetails,filename' 22.2.55 xp_getnetname 22.2.56 xp_oledbinfo@providername,@datasource,@location@providerstring,@catalog, @login,@password,@infotype 22.2.57 xp_readerrorlog[lognum][filename] 22.2.58 xp_regenumvalues 22.2.59 xp_regaddmultistr,xp_regdeletekey,xp_regdeletevalue,xp_repead, xp_repemovemultistring,xp_regwrite 22.2.60 xp_subdirs 22.2.61 xp_test_mapi_profile'profile, 22.2.62 xp_varlbimtohexstr 22.3 创建information_schema视图 22.4 创建系统函数 22.5 非文档化的dbcc命令 22.6 非文档化的函数 22.7 非文档化的跟踪标记 22.8 小结 第23章 数组 23.1 xp_array.dll 23.1.1 xp_createarray 23.1.2 xp_setarray 23.1.3 xp_getarray 23.1.4 xp_destoryarray 23.1.5 xp_listarray 23.2 数组系统函数 23.3 主要项目 23.4 多维数组 23.5 小结 第5部分 扩软件工程短评 第24章 创建可工作的环境 24.1 摆脱干扰 24.2 关上门 24.3 内部干扰 24.4 形式的作用 24.5 沉默是金;沟通是神圣的 24.6 小结 24.7 结束语 第25章 进化式开发 25.1 kaizen 25.2 小的改变的益处 25.3 软件 25.4 软件熵 25.5 再评估 25.6 对再评估的销售(或人工)管理 25.7 何时不进行再评估 25.8 数据库 25.9 是否可以通过再评估来代替设计 25,10 代码消亡 25.11 极度编程 25.11.1 代码在前,思考在后 25.11.2 补救措施 25.12 小结 25.13 结束语 第26章 完整测试 26.1 从哪里开始 26.2 测试的无用性 26.3 测试类型 26.3.1 单元测试 26.3.2 功能测试 26.3.3 逆向测试 26.3.4 集成测试 26.4 测试时机 26.5 测试可以节约时间 26.6 极度编程中的测试 26.7 其他类型的测试 26.7.1 代码检查 26.7.2 代码阅读 26.7.3 检查 26.7.4 遍历 26.8 小结 26.9 结束语 |
商品评论(0条)