SQL Server Management Studio - 运行 多个存储过程串联
SQL Server Management Studio - run multiple stored procedures in series
我想针对各种输入测试 30 个存储过程,看看是否会产生错误。存储过程共享相同的参数。当我在 SSMS 中 运行 所有这些(甚至只是其中的几个)时,执行 运行s 并且永远不会完成。似乎它们可能 运行 并行并使服务器停滞不前。如何在不手动一次执行一个的情况下依次执行存储过程?
DECLARE @spResult int;
DECLARE @paramA int;
DECLARE @paramB int;
DECLARE @paramC int;
set @paramA = 2013
set @paramB = 1;
set @paramC = 10;
exec @spResult = rstoredProc1 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc2 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc3 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc4 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc5 @paramA ,@paramB ,@paramC
...
有许多 方法可以解决这个问题。就个人而言,我使用 IF
来保持迭代进行,如果我没有获得成功代码则使用 RETURN
。在你的情况下,你可以做类似的事情:
EXEC @spResult = rstoredProc1 @paramA ,@paramB ,@paramC
IF @spResult <> 0
RETURN
ELSE
PRINT 'rstoredProc1 executed successfully'
EXEC @spResult = rstoredProc2 @paramA ,@paramB ,@paramC
IF @spResult <> 0
RETURN
ELSE
PRINT 'rstoredProc2 executed successfully'
我想针对各种输入测试 30 个存储过程,看看是否会产生错误。存储过程共享相同的参数。当我在 SSMS 中 运行 所有这些(甚至只是其中的几个)时,执行 运行s 并且永远不会完成。似乎它们可能 运行 并行并使服务器停滞不前。如何在不手动一次执行一个的情况下依次执行存储过程?
DECLARE @spResult int;
DECLARE @paramA int;
DECLARE @paramB int;
DECLARE @paramC int;
set @paramA = 2013
set @paramB = 1;
set @paramC = 10;
exec @spResult = rstoredProc1 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc2 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc3 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc4 @paramA ,@paramB ,@paramC
exec @spResult = rstoredProc5 @paramA ,@paramB ,@paramC
...
有许多 方法可以解决这个问题。就个人而言,我使用 IF
来保持迭代进行,如果我没有获得成功代码则使用 RETURN
。在你的情况下,你可以做类似的事情:
EXEC @spResult = rstoredProc1 @paramA ,@paramB ,@paramC
IF @spResult <> 0
RETURN
ELSE
PRINT 'rstoredProc1 executed successfully'
EXEC @spResult = rstoredProc2 @paramA ,@paramB ,@paramC
IF @spResult <> 0
RETURN
ELSE
PRINT 'rstoredProc2 executed successfully'