第7章存储过程和触发器 第7章存储过程和触发器 本章要点 口存储过程类型 口存储过程的创建、执行、修改和删除 口触发器概述 口触发器的创建、修改和删除 2023/7/16 《SQLSever程序设计》
第7章 存储过程和触发器 2023/7/16 《SQL Sever 程序设计》 1 第7章 存储过程和触发器 本章要点 存储过程类型 存储过程的创建、执行、修改和删除 触发器概述 触发器的创建、修改和删除
第7章存储过程和触发器 7.1存储过程 存储过程是一种数据库对象,将执行计划存储在数据库的服务器中。 (运行的速度比独立运行同样的程序快)可以了解数据库对象和数据 库信息。 7.1.1存储过程类型 1、系统提供的存储过程 ·存储在master)库中,以sp_为前缀. ·从系统表中获取 ·调用时前面不用加数据库名。 创建数据库时,一些存储过程会被自动创建。 2、用户自定义的存储过程 用户创建来完成某一特定功能,如查询用户所需的数据信息。 2023/7/16 《SQLSever程序设计》
第7章 存储过程和触发器 2023/7/16 《SQL Sever 程序设计》 2 7.1 存储过程 存储过程是一种数据库对象,将执行计划存储在数据库的服务器中. (运行的速度比独立运行同样的程序快)可以了解数据库对象和数据 库信息。 7.1.1 存储过程类型 1、系统提供的存储过程 • 存储在master库中,以sp_为前缀. • 从系统表中获取. • 调用时前面不用加数据库名。 • 创建数据库时,一些存储过程会被自动创建。 2、用户自定义的存储过程 用户创建来完成某一特定功能,如查询用户所需的数据信息
第7章存储过程和触发器 7.1.2创建存储过程 创建存储过程时,需要确定存储过程的三个组成部分: 口所有的输入参数以及传给调用者的输出参数: 口被执行的针对数据库的操作的操作语句,包括调用其它存储过程的语 句; 口返回给调用者的状态值,以指明调用是否成功。 1、用企业管理器创建存储过程。 数据库/存储过程/新建存储过程/输入存储过程下文/检查语法/确定 在右窗格中/右键/所有任务/管理权限 2023/7/16 《SQLSever程序设计》 3
第7章 存储过程和触发器 2023/7/16 《SQL Sever 程序设计》 3 7.1.2 创建存储过程 创建存储过程时,需要确定存储过程的三个组成部分: 所有的输入参数以及传给调用者的输出参数; 被执行的针对数据库的操作的操作语句,包括调用其它存储过程的语 句; 返回给调用者的状态值,以指明调用是否成功。 1、用企业管理器创建存储过程。 数据库/存储过程/新建存储过程/输入存储过程下文/检查语法/确定 在右窗格中/右键/所有任务/管理权限
第7章存储过程和触发器 2、用T一SQL命令的create procedure创建存储过程。 创建存储过程前要考虑到四点: 口在一个批处理中,create procedure语句不能与其它SQL 语句合并在一起. 口数据库的所有者具有默认的创建存储过程的权限,它可将该权 限传递给其它的用户. 口存储过程作为数据库对象其命名规则必须符合命名规则, 口只能在当前数据库中创建以属于当前数据库的存储过程, 2023/7/16 《SQL Sever程序设计》
第7章 存储过程和触发器 2023/7/16 《SQL Sever 程序设计》 4 2、用T-SQL命令的create procedure创建存储过程。 创建存储过程前要考虑到四点: 在一个批处理中,create procedure 语句不能与其它SQL 语句合并在一起. 数据库的所有者具有默认的创建存储过程的权限,它可将该权 限传递给其它的用户. 存储过程作为数据库对象其命名规则必须符合命名规则. 只能在当前数据库中创建以属于当前数据库的存储过程.
第7章存储过程和触发器 语法规则如下: Create procedure procedurename [number] [{@parameter data_type} [VARYING][=default][OUTPUT]][...n] [WITH (RECOMPILE ENCRYPTION RECOMPILE,ENCRYPTION)] [FOR REPLICATION]/**用于复制/ AS sql_statement [...n] 2023/7/16 《SQLSever程序设计》
第7章 存储过程和触发器 2023/7/16 《SQL Sever 程序设计》 5 语法规则如下: Create procedure procedure_name [;number] [{@parameter data_type} [VARYING][=default][OUTPUT]] [,…n] [WITH {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}] [FOR REPLICATION] /**用于复制/ AS sql_statement […n]