?
?
存储过程相当于是Transact—SQL的子程序。存储过程是一组为了完成特定功能的Transact—SQL语句集,是经编译后存储在服务器上并在服务器端运行的程序模块。用户通过存储过程的名称和提供的有关参数来执行它。存储过程一旦被创建,此后可以多次调用,极大地提高了程序的效率、可移植性和数据逻辑独立性
?
?
- 不带参数的存储过程
create procedure mypro1asselect * fromstudentwhere s_average>75--下面是执行execute mypro1
?
- 带输入参数的存储过程
create procedure mypro2@min_average char(10),@max_average char(10)asselect * from studentwhere s_average<[email protected]_average and s_average>[email protected]_average--下面是三种执行带参数存储过程的方法,结果一样mypro2 75,80;execute mypro2 75,80;execute mypro2 @max_average=80,@min_average=75;
??
在有输入参数的存储过程中,输入参数的值可以默认,这样在执行的时候可以不用输入或输入所指定的默认值
@min_average?char(10)=75,
则min_average?默认为75?执行的时候不需要在输入或输入75;
?
?
?
- 带输出参数的存储过程
create procedure mypro3@total_average real output,@total_female_average real outputasselect @total_average=sum(s_average)from student;select @total_female_average=sum(s_average)from studentwhere s_sex='女'--带输出参数的存储过程,调用它和别的存储过程不一样declare @total_average real,@total_female_average realexec mypro3 @total_average output ,@total_female_average output;print @total_average;print @total_female_average;
?
对于带output参数的存储过程,其调用方法与其他存储过程有所不同。首先要声明相应的变量来存放返回的结果,
然后在调用的时候要带关键字output,否则无法将返回结果保存下来。
?