- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL_T5
wnt 2000(C) copyright 基于SQL Server的数据库系统 Transact-SQL 编程 课题目标 使用Transact-SQL来创建脚本 使用流程控制技术、局部和全局变量及函数和错误处理技术等编程元素 使用存储过程模式来访问数据 创建和管理显式、隐式和分布式事务确保数据的一致性和可恢复性 创建触发器实施规则、强制执行数据完整性以及执行级联(CASCADE)的更新和删除 进行事务错误处理 使用Transact-SQL来创建脚本 批(Batch): 一组T-SQL语句,作为一个整体执行,以GO结束 变量 局部变量 全局变量 流程控制语句 动态构造语句 流程控制语句 游标 处理特性 仅向前游标 静态游标 键集游标 动态游标 功能特性 游标结果是只读的,还是可更新的 是局部的还是全局的 快速只进示例 快速只进游标 只支持游标从头到尾顺序提取,不能向后滚动 读到所有提交的数据更新 在行提取后对行所做的更改对游标是不可见的 对基表直接进行操作 静态游标示例 静态游标 静态游标的完整结果集在游标打开时建立在 tempdb 中 总是按照游标打开时的原样显示结果集,只读 – 游标下的表不能更新 支持所有滚动方法 不是 ‘动态的’,不反映在数据库中所做的任何影响结果集成员的更改,也不反映会使组成结果集的行的列值发生变化的更改 键集驱动游标示例 键集驱动游标 键集驱动游标由一套被称为键集的唯一标识符(键)控制。 当游标打开时,键集在游标打开时建立在 tempdb 中 支持所有滚动方法 要求每个被查询的表中有唯一索引 从数据页面中获得记录信息 可看到更新的数据。在用户滚动游标中对数据值所做的更改(由游标所有者更改或其它用户提交)是可见的 动态游标 动态游标与静态游标相对。 当滚动游标时,动态游标反映结果集中所做的所有更改。结果集中的行数据值、顺序和成员在每次提取时都会改变。 直接对基表操作 支持所有滚动方法 滚动时可见最新的更新 从游标提取数据 FETCH [[NEXT|PRIOR|FIRST|LAST|ABSOLUTE {n|@nvar}|RELATIVE {n|@nvar}] FROM cursor_name [INTO @variable_name1, @variable_name2, …] 声明游标 DECLARE cursor_name CURSOR [LOCAL|GLOBAL][FORWARD_ONLY|SCROLL][STATIC|KEYSET|DYNAMIC|FAST_FORWARD][READ_ONLY|SCROLL_LOCKS|OPTIMISTIC][TYPE_WARNING]FOR select_statement[FOR UPDATE [OF column_list]] 有效地使用游标 对游标类型微小的改变可以对性能造成很大的影响 选择适合你需求的最低的游标类型 一般使用默认结果集或快速只进 除非功能上需要“丰富的”游标类型 考虑服务器/网络资源的影响 存储过程 Stored Procedures 存储过程类型 创建存储过程 CREATE PROC[EDURE] procedure_name [;number][{@parameter data_type} [VARYING] [= default] [OUTPUT]][,...n][WITH {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}][FOR REPLICATION] AS sql_statement [...n] 带变量的 EXECUTE 语句 EXEC[UTE]????{????????[@return_status =]????????????{procedure_name [;number] | @procedure_name_var????}????[[@parameter =] {value | @variable [OUTPUT] | [DEFAULT]] ????????[,...n][WITH RECOMPILE] 带字符串的 EXECUTE 语句 EXEC[UTE] ({@str_var|tsql_string} [{@str_var|tsql_string}…]) 编译存储过程 第一次运行存储过程时进行编译,并将其最佳路径保存在过程高级缓存中以便将来执行。 重新编译存储过程 使用 sp_recompile 系统存储过程 指定带有 WITH RECOMPILE 子句的 CREATE PROCEDURE 语句 指定带有 WITH RECOMPILE 子句的 EXECUTE 语句 事务的隔离级别
文档评论(0)