我创建了一个存储过程,它从表中的特定列中检索最后一个值,并根据文档类型和位置将其递增一。
当我单独调用此存储过程时,它可以完美运行。但是当我将它嵌套在另一个存储过程中时,该值未设置为 variable @TempLastGeneratedNumber
。当我在另一个过程中调用存储过程并且如果我打印@TempLastGeneratedNumber
它的值是空的。
但是当我单独调用存储过程时,我得到了正确的值。
这是我的存储过程
Create Procedure [GenerateDocumentNo]
@Document_Type varchar(max) = null,
@Location_Id int = null
@FinalNumber varchar(max) = null output
as
begin try
begin tran
Declare @TempLastGeneratedNumber varchar(max)
if (@Document_Type = 'Apple')
BEGIN
Select top(1) @TempLastGeneratedNumber = Code from Apple_Details_tbl where Location_Id = @Location_Id order by Id desc
END
else if (@Document_Type = 'Mango')
BEGIN
Select top(1) @TempLastGeneratedNumber = Code from Mango_Details_tbl where Location_Id = @Location_Id order by Id desc
END
if(@TempLastGeneratedNumber is not null or @TempLastGeneratedNumber != '')
BEGIN
Set @FinalNumber = @TempLastGeneratedNumber + 1
END
commit tran
end try
begin catch
PRINT ERROR_MESSAGE()
if
end catch
所以请帮助我上面存储过程中的问题是什么以及如何解决这个问题?