首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

为啥取不到存储过程的返回值

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

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


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

热点排行