求助 关于输出变量
ALTER proc [dbo].[proc_3] @sno varchar(10),@grade int outputas
select @grade= sum(grade) from sc where sno=@sno
if @grade<9
print'此学生所选总学分为'+CAST( @grade AS NVARCHAR(30))+'学分不足'
else print'此学生所选总学分为'+CAST( @grade AS NVARCHAR(30))+'学分已足'
运行以上代码后,
exec proc_3 '95001'后说缺少变量
如果执行
exec proc_3 '95001',null
或exec proc_3 '95001',‘146843464684’
146843464684可以换成任意的数都能得到相同且正确的结果
这是为什么呢,
@grade 需要赋值吗? ALTER proc你这么写的目的是什么 ALTER proc [dbo].[proc_3] @sno varchar(10),@grade int output
呵呵 你是设置的连两个参数嘛 在执行它的时候就当然要传两个参数进去嘛
@grade不需要赋值 因为你是用的select @grade
这已经相当于给它赋值了 output表示一个传出参数,和传入参数正好相反,是从存储过程得到值,再将值传递给外面的变量
举一个例子
declare @getgrade int
exec proc_3 '95001',@getgrade output
这个时候@getgrade就得到存储过程中@grade的值了 同上
页:
[1]
