如何一次执行多个存储过程?

时间:2012-10-07 15:11:48

标签: sql sql-server sql-server-2005

我想知道有什么方法可以让我一次执行所有存储过程。 目前,我正在使用exec "Stored Procedure name"命令执行每个存储过程。 我有超过200个存储过程要在我的数据库上执行。

有没有简单的方法可以一次执行所有这些存储过程,因为我很难跟踪它们?

6 个答案:

答案 0 :(得分:5)

我建议您编写一个调用其他存储过程的存储过程。

答案 1 :(得分:3)

将所有存储过程放在存储过程中,

CREATE PROCEDURE CallAllProcedure
AS
BEGIN
    CALL Proc1
    CALL Proc2
END

答案 2 :(得分:3)

假设您正在使用查询分析器,只需在所有存储的proc和运行脚本之间放置一个GO。

答案 3 :(得分:1)

如果要并行执行它们,可以创建一个SQLJob并将它们全部安排在同一时间执行。下面的链接是SQL Jobs的一般用法。

http://msdn.microsoft.com/en-us/library/ms190268.aspx

答案 4 :(得分:0)

您可以从sys.objects表中查询所有存储过程名称查询类型='P'。在您可以使用游标执行每个存储过程名称之后。但是如何使用参数存储过程?您还必须提供参数值以避免错误。

答案 5 :(得分:0)

您可以使用Service broker来执行此异步,但我不认为同时运行200个存储过程是个好主意,除非您确定数据库上没有任何争用