- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北大青鸟SQL高级用法-存储过程 -(第八讲)
第八章 存储过程 系统存储过程示例 用户定义存储过程的指导原则1-2 存储过程的名称必须遵守标识符的命名规则 存储过程中可以创建所有数据库对象,但默认值、 规则、触发器、过程和视图除外。创建对象后,就可以在过程内部进行引用。 存储过程可以引用临时表。 输出参数演示 参数默认值 通过为可选参数指定默认值,可创建带有可选参数的存储过程 如果在存储过程中没有指定参数的默认值,并且调用程序也没有在执行存储过程时为该参数提供值,那么会返回系统错误 例如 删除存储过程 DROP PROCEDURE语句从当前数据库中删除一个或多个存储过程或过程组 语法 DROP PROCEDURE { procedure } [ ,...n ] 例如 返回代码演示 RAISERROR 语句 返回用户定义的错误信息,同时设置一个系统以记录已发生的错误 语法 RAISERROR 语句演示 Version 3.0 视图概念 视图优点 创建和使用视图 修改和删除视图 游标概念 游标优点 游标实现方法 服务器游标类型 在T_SQL中创建和使用游标 回顾 存储过程概念 列出存储过程的优点 说明存储过程的类型 解释系统存储过程的类别 解释创建、修改和执行用户定义存储过程的过程 使用存储过程参数 选择合适的重新编译选项 解释在存储过程中处理错误信息的过程 目标 一组使用一个名称存储的预编译T-SQL语句 由数据库开发人员或数据库管理员编写 用来执行管理任务或应用复杂的业务规则 包含DML语句 存储过程概念1-2 存储过程 -------- -------- -------- 单个 SELECT 语句 SELECT 语句块 SELECT 语句与流程控键关键字 数据修改或数据检索语句 存储过程概念2-2 可以包含 执行速度更快 数据访问速度更快 实现多个程序共享应用程序逻辑 能够屏蔽数据库的结构,实现更高的安全性 减少网络流通量 存储过程的优点 系统存储过程 可执行 用户定义的存储过程 由用户创建和执行 存储过程的类型 系统存储 过程 SQL Server 查询代理 SQL 邮件 目录 扩展 复制 系统 安全性 游标 分布式 查询 系统存储过程的类别 系统存储 过程 sp_stop_job sp_password sp_configure sp_help sp_helptext sp_start_job sp_tables sp_stored_procedures sp_server_info sp_databases 由用户使用CREATE PROCEDURE语句在当前数据库中创建 数据库所有者拥有使用CREATE PROCEDURE语句的默认权限 语法 CREATE PROC[EDURE] procedure_name 示例 用户定义的存储过程 CREATE PROCEDURE Titles_1389 AS PRINT 此代码显示出版商 1389 出版的标题 SELECT * FROM titles WHERE pub_id = 1389 在存储过程内调用的过程可以访问所有在调用过程中创建的对象 在存储过程中可使用2100个参数 只要内存空间足够,可以在存储过程中创建任意多个局部变量。 存储过程的最大大小为128 MB 用户定义存储过程的指导原则2-2 EXECUTE 语句用来运行用户定义的存储过程。 语法 EXEC[UTE] procedure_name 示例 执行用户定义的存储过程 EXECUTE Titles_1389 语法: 在存储过程中使用参数 可以使用参数向存储过程中输入值,或从存储过程中输出值。 CREATE PROCEDURE procedure_name @Parameter_name data_type AS : 执行存储过程的示例: 输入参数示例 创建存储过程的示例: CREATE PROCEDURE Titles_Pub @v_pubid char(4) AS SELECT * FROM titles WHERE pub_id = @v_pubid EXECUTE Titles_Pub 0877 CREATE PROCEDURE get_sales_for_title @title varchar(80) = NULL, -- NULL default value @ytd_sales int OUTPUT AS … 需要重新编译存储过程,以反映对索引所做的修改 重新编译过程的方法有三种: 使用系统存储过程sp_recompile 使用CREATE PROCEDURE时指定WITH RECOMPIL
文档评论(0)