第13章存储过程用户自定义函数与触发器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13.2 创建、修改和删除存储过程

不含参数的存储过程
CREATE PROCEDURE 查询学生成绩 AS SELECT 学生表.姓名, 课程表.课程名, 选课表.成绩 FROM 选课表 INNER JOIN 学生表 ON 选课表.学号 = 学生表.学号 INNER JOIN 课程表 ON 选课表.课程号 = 课程表.课程号


13.2 创建、修改和删除存储过程

创建存储过程
(1) 启动企业管理器,登录到要使用的服务器。 (2) 选择要创建存储过程的数据库,在左窗格中单击‚存 储过程‛文件夹,此时在右窗格中显式该数据库的所 有存储过程,如图13-1所示。
图13-1 企业管理器中显示的存储过程信息
13.2 创建、修改和删除存储过程
提示: 新创建存储过 程名字包含在 CREATE PROCEDURE语句 中,不在保存 时输入。
图13-3 输入存储过程内容
输入内 容区域
13.2 创建、修改和删除存储过程

修改存储过程
(1) 在企业管理器中展开服务器组,再展开服务器。 (2) 展开‚数据库‛文件夹,再展开要修改存储过程的数据 库。 (3) 在要修改的存储过程上右击,并在弹出的快捷菜单中选 择【属性】项,或双击该存储过程,弹出‚存储过程属 性‛对话框。
例13-1:查询学生成绩。
执行:EXEC 查询学生成绩
13.2 创建、修改和删除存储过程
例13-2:查找1~100之间的完全平方数。
CREATE PROCEDURE 查找完全平方数 AS declare @n int set @n=1 while @n*@n<=100 begin print cast(@n*@n as varchar(5)) set @n=@n+1 end
第13章 存储过程、用户自定义 函数与触发器
来自百度文库计算中心
本章内容
13.1 存储过程概述 13.2 通过企业管理器创建、修改和删除存 储过程 13.3 存储过程的执行与参数传递 13.4 用户自定义函数 13.5 触发器及其作用、效果演示
13.1 存储过程概述

存储过程(Stored Procedure)
提示:定义参数的数据类型需和表内字段类型一致。
13.3 存储过程的执行与参数传递
13.3 存储过程的执行与参数传递

输入参数
输入参数允许调用程序为存储过程传送数据值。 定义存储过程的输入参数

必须在CREATE PROCEDURE语句中声明一个或 多个变量及数据类型。 例13-3:创建带参数的存储过程,输入学生学号,返 回学生姓名、性别等个人信息。

CREATE PROCEDURE [dbo].[查询指定学生信息] @学号 varchar(10) AS select * from 学生表 where 学号=@学号
(3) 右击‚存储过程‛文件夹,在弹出菜单中选择【新建存 储过程】选项,打开创建存储过程对话框,如下图。
图13-2 创建存储过程对话框
13.2 创建、修改和删除存储过程
(4) 在‚文本‛编辑框中输入存储过程正文。 (5) 单击‚检查语法‛按钮,检查语法是否正确。 (6) 单击‚确定‛按钮,保存存储过程。

13.1 存储过程概述

存储过程的类型

系统存储过程
例如:EXEC sp_helpdb
用户定义存储过程:由用户创建并能完成某 一特定功能的存储过程。 临时存储过程 扩展存储过程

例如:EXEC xp_cmdshell 'dir d:'
13.1 存储过程概述

存储过程的功能
(1)接收输入参数并以输出参数的形式为调用过 程或批处理返回多个值。
(2)包含执行数据库操作的编程语句,包括调用 其他过程。
(3)为调用过程或批处理返回一个状态值,以表 示成功或失败(及失败原因)。

存储过程特点
13.2 创建、修改和删除存储过程

创建存储过程的指导原则

避免出现存储过程的拥有者和底层对象的拥有者 不同的情况,建议由dbo用户拥有数据库中所有对 象 每个存储过程完成单个任务 命名本地存储过程的时候,避免使用‚sp_‛前缀 尽量少使用临时存储过程,以避免频繁连接 tempdb 里的系统表 不要直接从 syscomments 系统表里删除项

是什么?
简单的说:存储过程是将常用的或很复杂的工 作,预先用T-SQL语句写好并用一个指定的名 称存储起来的语句集合。 课本的定义:是SQL Server服务器上一组预编 译的T-SQL语句,用于完成某项任务,它可以 接受参数、返回状态值和参数值,并且可以嵌 套调用。 举例

13.1 存储过程概述

为什么要使用存储过程?
存储过程在创建时即在服务器上进行编译,所 以执行起来比SQL语句快,且能减少网络通信 的负担。 可以在单个存储过程中执行一系列 SQL语句, 完成复杂的操作。 存储过程可以重复使用,减少数据库开发人员 的工作量 。 安全性高,可设定只有某些用户才具有对指定 存储过程的使用权。
执行:exec 查找完全平方数
13.3 存储过程的执行与参数传递

参数

存储过程和调用者之间需要通过参数来交换 数据,可以按输入的参数执行,也可由参数 输出执行结果。
例如:查询学号为s2008001的c01课程的成绩。 输入参数:学号(s2008001)和课程号(c01) 输出参数:成绩

SQL Server支持这两类参数。
显示与该存 储过程相关 的对象
图13-5 “除去对象”对话框
13.2 创建、修改和删除存储过程

创建存储过程时,需要确定存储过程的三 个组成部分:
参数,所有的输入参数以及传给调用者的输出 参数。 过程体,被执行的针对数据库的操作语句,包 括调用其它存储过程的语句; 返回状态,返回给调用者的状态值,以指明调 用是成功还是失败。
图13-4 控制台目录
13.2 创建、修改和删除存储过程

删除存储过程


类似于删除表操作,在存储过程显示列表中选择要删 除的存储过程(可以用ctrl或shift选多个)。 右键单击选中的存储过程,在弹出的快捷菜单中选择 【删除】项,打开‚除去对象‛对话框,如下图,单 击【全部除去】按钮,完成删除。
相关文档
最新文档