什么是存储过程存储过程(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
用来执行管理任务或应用复杂的业务规则
存储过程可以带参数,也可以返回结果
存储过程可以包含数据操纵语句、变量、逻辑 控制语句等
存储过程的优点
执行速度更快
允许模块化程序设计
提高系统安全性
减少网络流通量
带有输入、输出参数存储过程
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