如何解决执行两个存储过程的问题



我想执行两个嵌套的存储过程,但我没有太多信息。我在下面创建了t-SQL代码,但它不起作用。你能给我一个主意吗?提前谢谢。

DECLARE @currency_val decimal(18, 2);
DECLARE @first_price decimal(18, 2) = 80;
DECLARE @curr_unit nvarchar(50) = 'eur';
BEGIN
exec sp_TLKARSILIK @first_price, @curr_unit @currency_val = @currency_val
END
BEGIN
exec sp_DOVIZKARSILIK @currency_val, 'eur'
END

如果您想使用第一个存储过程的输出作为第二个存储过程,它应该是这样的:

declare @ouput1 as int
begin
exec sp_first 'what_ever', @output1 output
exec sp_second @output1
end

注意";输出";@output1参数的描述符。

如果您的意思是第二个SP输入参数的值不正确。这是因为两个SP同时运行。第二个SP必须在第一个SP完成后运行。可以使用while语句来执行此操作。

您可以测试以下代码:

DECLARE @currency_val decimal(18, 2) = -1;
DECLARE @first_price decimal(18, 2) = 80;
DECLARE @curr_unit nvarchar(50) = 'eur';

BEGIN
exec sp_TLKARSILIK @first_price, @curr_unit @currency_val = @currency_val
END

WHILE 1=1
BEGIN
IF @currency_val <> -1
BREAK
END
BEGIN
exec sp_DOVIZKARSILIK @currency_val, 'eur'
END

最新更新