In SQL Server Jobs 两个存储过程 一个一个执行还是同时执行?

In SQL Server Jobs Two stored procedures Execute one by one or simultaneously?

我想在SQL Server 2012 中创建一个作业,以执行两个相关的存储过程。

Exec my_First_Procedure
Exec my_Second_Procedure

如果我像上面那样创建作业,第二个在第一个完成后开始执行,或者两个查询同时执行?

帮我找一下。谢谢指教。

T-SQL 是一种 脚本 语言。语句是顺序执行的。事实上,几乎所有的计算机语言都是如此。通常,您必须付出一些努力才能并行执行。

如果第一个语句失败,则不执行第二个语句。

SQL 服务器确实有 运行 并行处理的机制。一种方法相当复杂,使用消息队列功能。您可以阅读有关消息队列的内容 here. Or there are various blogs on the subject of asynchronous execution, such as this one

另一种选择是使用作业。只需将两个作业同时安排到 运行。

您创建了一个存储过程来调用两个过程并从作业中调用。两个 SP 都在新的 job1 SP 中执行,甚至失败或成功。

create procedure job1
as 
begin try
    begin try
        exec my_First_Procedure;
    end try 
    begin catch 
        select ERROR_MESSAGE() as messages;
    end catch

    begin try
        exec my_Second_Procedure;
    end try 
    begin catch 
        select ERROR_MESSAGE() as messages;
    end catch

    select 'Success' as messages;
end try
begin catch 
    select ERROR_MESSAGE() as messages;
end catch