与这样一个存储过程,用来取流水号。因为涉及一些字段的计算,所以没有用函数。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未被赋值。
为什么呢?
@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未被赋值。
为什么呢?
--set @num = @finalString 改成select
select @num = @finalString
@TableName输入参数,赋值,指定@num输出参数
exec BuildCode @TableName,@num output