创建存储过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
创建存储过程
一、在SSMS图形化界面下创建一个存储过程
从stsc数据库的三个表中查询某人指定课程的成绩和学分。该存储过程接收与传递参数精确匹配的值,操作步骤如下所示:
(1)启动SQL Server Management Studio,在对象资源管理器中展开“数据库”结点,选中stsc数据库,将其展开。然后展开“可编程性”结点,右击“存储过程”选项,在弹出的快捷菜单中选择“新建存储过程”命令,结果如图所示:
(2)打开存储过程的脚本编辑窗口,在该窗口中输入要创建存储过程的T-SQL语句,输入后完成后单击按钮,系统提示“命令已成功完成”,如下所示;
这里输入的创建存储过程的T-SQL语句如下:
use stsc
go
create procedure student_info
@stname char(8),
@cname char(16)
as
select a.stno,stname,cname,grade,t.credit
from student a join score b
on a.stno=b.stno join course t
on o=o
where a.stname=@stname and ame=@cname
存储过程,至此完成存储过程的创建,如下所示:
二、使用T_SQL语句创建存储过程
创建一个存储过程do_insert,作用是向student表中插入一行数据。创建另外一个存储过程do_action,在其中调用第一个存储过程,并根据条件处理该行数据,处理后输出相应的信息。
(1)创建do_insert存储过程,作用是向student表中插入一行数据,如图所示:
(2)创建另外一个存储过程do_action,在其中调用第一个存储过程,并根据条件处理该行数据,处理后输出相应的信息,如下所示:
create procedure do_action@x bit,@str char(8)output
as
begin
exec do_insert
if@x=0
begin
update student set stname='李梦',stsex=0 where stno='1009'
set@str='修改成功'
end
else
if@x=1
begin
delete from student where stno='1009'
set@str='删除成功'
end
end
declare@str char(8)
exec do_action0,@str output
select@str;
三、设计一个存储过程avg_course,求指定课程号的课程名和平均分,并用相关数据进行测试,如下所示:
use stsc
go
create procedure avg_course(@num int)
as
select ame,A VG(b.grade)as平均成绩
from course a,score b
where o=o and o=@num
group by o,ame;
go
测试:课程号为801的课程名和平均分
exec avg_course801
四、用系统存储过程查看刚创建的存储过程的信息,如下所示:
use stsc
go
execute sp_help avg_course
execute sp_helptext avg_course
execute sp_depends avg_course
go
五、删除存储过程,如下所示:drop procedure student_info