sql存储过程教程ii.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
说明 SQL Server 是将空字符串解释为单个空格还是解释为真正的空字符串,由兼 容级别设置控制。如果兼容级别小于或等于 65 ,SQL Server 就将空字符串解释为 单个空格。如果兼容级别等于 70 ,则 SQL Server 将空字符串解释为空字符串。 获得有关存储过程的信息 若要显示用来创建过程的文本,请在过程所在的数据库中执行 sp_helptext , 并使用过程名作为参数。 说明 使用 ENCRYPTION 选项创建的存储过程不能使用 sp_helptext 查看 若要显示有关过程引用的对象的报表,请使用 sp_depends 若要为过程重命名,请使用 sp_rename 。 引用对象 SQL Server 允许创建的存储过程引用尚不存在的对象。在创建时,只进行 语法检查。 执行时,如果高速缓存中尚无有效的计划, 则编译存储过程以生成执 行计划。 只有在编译过程中才解析存储过程中引用的所有对象。 因此,如果语法 正确的存储过程引用了不存在的对象,则仍可以成功创建,但在运行时将失败, 因为所引用的对象不存在。 延迟名称解析和兼容级别 SQL Server 允许 Transact-SQL 存储过程在创建时引用不存在的表。这种 能力称为延迟名称解析。 不过,如果 Transact-SQL 存储过程引用了该存储过程 中定义的表,而兼容级别设置(通过执行 sp_dbcmptlevel 来设置)为 65 ,则 在创建时会发出警告信息。 而如果在运行时所引用的表不存在, 将返回错误信息。 执行存储过程 成功执行CREATBPROCEDURS句后,过程名称将存储在sysobjects 系统 表中,而 CREATE PROCEDURE^的文本将存储在 syscomments中。第一次执 行时,将编译该过程以确定检索数据的最佳访问计划。 使用 cursor 数据类型的参数 存储过程只能将cursor数据类型用于OUTPUT参数。如果为某个参数指定 了 cursor数据类型,也必须指定 VARYING和OUTPUT参数。如果为某个参数 指定了 VARYING关键字,则数据类型必须是cursor,并且必须指定OUTPUT关 键字。 说明 cursor数据类型不能通过数据库 API (例如OLE DB ODBC ADO和 DB-Library)绑定到应用程序变量上。因为必须先绑定OUTPUT参数,应用程序 才可以执行存储过程,所以带有 cursor OUTPUT 参数的存储过程不能通过数据 库 API 调用。只有将 cursor OUTPUT 变量赋值给 Transact-SQL 局部 cursor 变量时,才可以通过 Transact-SQL 批处理、存储过程或触发器调用这些过程。 Cursor 输出参数 在执行过程时,以下规则适用于 cursor 输出参数: 对于只进游标,游标的结果集中返回的行只是那些存储过程执行结束时处于 或超出游标位置的行,例如: 在过程中的名为 RS 的 100 行结果集上打开一个非滚动游标。 过程提取结果集 RS 的头 5 行 过程返回到其调用者 返回到调用者的结果集 RS 由 RS 的第 6 到 100 行组成,调用者中的游标 处于 RS 的第一行之前。 对于只进游标, 如果存储过程完成后, 游标位于第一行的前面, 则整个结果 集将返回给调用批处理、 存储过程或触发器。 返回时,游标将位于第一行的前面。 对于只进游标, 如果存储过程完成后, 游标的位置超出最后一行的结尾, 则 为调用批处理、存储过程或触发器返回空结果集。 说明 空结果集与空值不同。 则将空值传递回调用批处理、 存储过 但该游标从未打开过, 也会出现这种对于可滚动游标, 在存储过程执行结束时, 结果集中的所有行均会返回给调 用批处理、 存储过程或触发器。 返回时,游标保留在过程中最后一次执行提取时 的位置。 则将空值传递回调用批处理、 存储过 但该游标从未打开过, 也会出现这种 对于任意类型的游标, 如果游标关闭, 程或触发器。 如果将游标指派给一个参数, 情况。 说明 关闭状态只有在返回时才有影响。 例如, 可以在过程中关闭游标, 稍 后再打开游标,然后将该游标的结果集返回给调用批处理、存储过程或触发器。 临时存储过程 SQL Server 支持两种临时过程:局部临时过程和全局临时过程。局部临时 过程只能由创建该过程的连接使用。 全局临时过程则可由所有连接使用。 局部临 时过程在当前会话结束时自动除去。 全局临时过程在使用该过程的最后一个会话 结束时除去。通常是在创建该过程的会话结束时。 临时过程用 # 和 ## 命名,可以由任何用户创建。创建过程后,局部过程 的所有者是唯一可以使用该过程的用户。 执行局部临时过程的权限不能授予其他

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档