3

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

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

4

6 回答 6

6

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

于 2012-10-07T15:14:35.820 回答
4

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

CREATE PROCEDURE CallAllProcedure
AS
BEGIN
    CALL Proc1
    CALL Proc2
END
于 2012-10-07T15:14:58.053 回答
3

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

于 2012-10-07T15:17:57.947 回答
1

如果你想并行执行它们,你可以创建一个 SQLJob 并安排它们同时执行。下面的链接是 SQL 作业的一般用法。

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

于 2012-10-07T16:29:52.043 回答
0

您可以从查询 type='P' 的 sys.objects 表中选择所有存储过程名称。之后就可以对每个存储过程名称使用游标来执行了。但是带参数的存储过程呢?您还必须提供参数值以避免错误。

于 2012-10-07T16:10:51.487 回答
0

您可以使用服务代理来执行此异步操作,但我认为同时运行 200 个存储过程不是一个好主意,除非您确定数据库上不会有任何争用

于 2014-01-16T03:01:26.757 回答