if(@bianliang=1)
BEGIN
--当@bianliang等于1时,下边的更新语句正常实行
update tablename set a=1
return(2)
END
else
BEGIN
return(3)
END
BEGIN
--当@bianliang等于1时,下边的更新语句正常实行
update tablename set a=1
return(2)
END
else
BEGIN
return(3)
END
create table tablename(a int)
insert tablename values(100)
go--测试存储过程
create proc p_test
@bianliang int=1,
@number int=2
as
if(@bianliang=1)
BEGIN
--当@bianliang等于1时,下边的更新语句正常实行
update tablename set a=1
select @number=2
END
else
BEGIN
select @number=3
END
RETURN @number
go--调用
declare @number int
exec @number=p_test 1
select 结果1=@numberexec @number=p_test 0
select 结果2=@number
go--删除测试
drop table tablename
drop proc p_test/*--测试结果结果1
-----------
2(所影响的行数为 1 行)结果2
-----------
3(所影响的行数为 1 行)
--*/
你可以自己试一下。我感觉
有insert into 或者 update 等语句,下面的
select @number=2 赋值 或者 return(2)
都没有反应,如同虚设?
谢谢,不是这句
我写这句的目的是这个更新的语句能成功运行但是他下面一行赋值的语句
select @number=2在我现在返回参数时是空的,也就是刚才的赋值语句几乎没有什么用。
我的电脑上的测试结果表明,不是你帖出部分的代码的问题. 检查其他代码
-------------------------------------------------------------------
我的存储过程用SQL来调试的确都有返回值,都是对的。但是我用ASP语句调用的时候response.write Cmd.Parameters("number")
就是输出的值。这个值在没有
update tablename set a=1
这一行
那么ASP都能有正确的返回值但是有
update tablename set a=1
这句以后他下面的变量赋值,在ASP中就没有返回值这是怎么回事?