数据库总结十存储过程
? 什么是存储过程存储过程(procedure)类似于C语言中的函数
? 用来执行管理任务或应用复杂的业务规则
? 存储过程可以带参数,也可以返回结果
? 存储过程可以包含数据操纵语句、变量、逻辑 控制语句等
存储过程的优点
? 执行速度更快
? 允许模块化程序设计
? 提高系统安全性
? 减少网络流通量
带有输入、输出参数存储过程
create proc sum_course_credit
(@stud_id char(8),@sum_credit tinyint out,@stud_id1 char(8) output)
as
begin
select @sum_credit =sum(course_credit) from tblcourse
where course_id in(select course_id
from tblscore sc where stud_id=@stud_id)
select @stud_id1 = @stud_id
end
go
declare @n int,@stud_id2 char(8)
exec sum_course_credit '31022001' ,@n out, @stud_id2 out
print '学号为:'+@stud_id2+ '学生选修总学分:'+convert(char(4), @n)
? 存储过程是一组预编译的SQL语句,它可以包含数据操纵语句、变量、逻辑控制语句等。
? 存储过程允许带参数,参数分为:
? 输入参数
? 输出参数
其中,输入参数可以有默认值。
? 输入参数:可以在调用时向存储过程传递参数,此类参数可用来向存储过程中传入值。
? 输出参数从存储过程中返回(输出)值,后面跟随OUTPUT关键字。
? RAISERROR语句用来向用户报告错误。
? output是输出参数
? out是普通输入参数
alter procedure insertABData
as
declare @id int ,@aname varchar(100),@bname varchar(100)
set @id = 1
set @aname = 'a'
set @bname = 'b'
while(@id <1000000)
begin
set @aname= 'a'+cast(@id as char(12))
set @bname= 'b'+cast(@id as char(12))
insert into A values(@id, @aname)
insert into B values(@id,@id, @bname)
set @id = @id+1
end
execute insertABData