我想知道有什么方法可以让我一次执行所有存储过程。
目前,我正在使用exec "Stored Procedure name"
命令执行每个存储过程。
我有超过200个存储过程要在我的数据库上执行。
有没有简单的方法可以一次执行所有这些存储过程,因为我很难跟踪它们?
答案 0 :(得分:5)
我建议您编写一个调用其他存储过程的存储过程。
答案 1 :(得分:3)
将所有存储过程放在存储过程中,
CREATE PROCEDURE CallAllProcedure
AS
BEGIN
CALL Proc1
CALL Proc2
END
答案 2 :(得分:3)
假设您正在使用查询分析器,只需在所有存储的proc和运行脚本之间放置一个GO。
答案 3 :(得分:1)
如果要并行执行它们,可以创建一个SQLJob并将它们全部安排在同一时间执行。下面的链接是SQL Jobs的一般用法。
答案 4 :(得分:0)
您可以从sys.objects表中查询所有存储过程名称查询类型='P'。在您可以使用游标执行每个存储过程名称之后。但是如何使用参数存储过程?您还必须提供参数值以避免错误。
答案 5 :(得分:0)
您可以使用Service broker来执行此异步,但我不认为同时运行200个存储过程是个好主意,除非您确定数据库上没有任何争用