在线聊天 * microwhj
* whj
* 等级:
发表于:2008-06-11 18:00:34 楼主
5.数据库中有存储过程如下所示:
create procedure p as begin declare@err int set @err=-1 update tb1set salary=salary*1.1
set @err=@@error
if @err=0
return@@rowcount
else return @err
end
在执行时返回值总是为0,请问应当如何修改()
A. 删除判断@err值的判断,直接返回@rowcount
B. 添加变量@count,在@err=@@error后添加SET@COUNT=@@ROWCONT
C. 添加变量@count,在@err=@@error前添加SET@COUNT=@@ROWCONT
D. 添加变量@count,在@err=@@error改为SET@COUNT=@@ROWCONT@err=@@error,并阍返回@@ROWCOUNT替换为返回@COUNT
请问该选什么啊,并说哈原因,谢谢
@err int output
as
begin
set @err=-1
update tb1set salary=salary*1.1
set @err=@@error
if @err=0
set @err=@@rowcount
end 用output,return 只能返回int,是表示存储过程是否成功的,和返回值不一样
调用:
declare @i int
exec p @i output
select @i