数据库总结十存储过程
    ?	什么是存储过程存储过程(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