日期:2014-05-17  浏览次数:20391 次

为什么取不到存储过程的返回值?
与这样一个存储过程,用来取流水号。因为涉及一些字段的计算,所以没有用函数。

ALTER procedure [dbo].[BuildCode] @TableName varchar(200),
@num varchar(20) output
as
begin
……
……
--存储过程最后是这样的
   set @num = @finalString --@finalString是里面的一变量,计算得出后,赋给@num
   print '@num ='+@num --这个是测试,看最后的值是不是正确
end

这个存储过程能正确运行,最后能得到我想要的值。

但是我在其他存储过程里调用这个,却得不到想要的,不知道为什么。调用语句如下


declare @TableName varchar(20)
declare @num varchar(20)
exec BuildCode @TableName,@num 
print '@num ='+@num

结果是 @num未被赋值。
为什么呢?

------解决方案--------------------
try this,

declare @TableName varchar(20),@num varchar(20)

exec BuildCode @TableName,@num output  

print '@num ='+@num

------解决方案--------------------
调用里面加个 output