启动多个存储过程以运行';在后台';关于sqlserverexpressedition

启动多个存储过程以运行';在后台';关于sqlserverexpressedition,sql,sql-server,concurrency,background,sql-server-express,Sql,Sql Server,Concurrency,Background,Sql Server Express,是否可以运行“在后台”运行的多个存储过程 存储过程必须从单个主存储过程启动,就像生成多个工作线程一样。例如: CREATE PROCEDURE MyLauncher AS BEGIN BEGIN @EXEC MyBackgroundSP01 -- Runs in parallel to the other 2 @EXEC MyBackgroundSP02 -- Runs in parallel to the other 2 @EXEC MyBackgr

是否可以运行“在后台”运行的多个存储过程

存储过程必须从单个主存储过程启动,就像生成多个工作线程一样。例如:

CREATE PROCEDURE MyLauncher
AS
BEGIN
    BEGIN
      @EXEC MyBackgroundSP01 -- Runs in parallel to the other 2
      @EXEC MyBackgroundSP02 -- Runs in parallel to the other 2
      @EXEC MyBackgroundSP03 -- Runs in parallel to the other 2
    END
END

不,正如你所描述的,这是不可能的。您可以运行多个SQL作业,这些作业将同时执行过程/

不,正如您所描述的,这是不可能的。您可以运行多个SQL作业,这些作业将同时执行这些过程。

根据这个问题,您可以尝试使用ServiceBroker


根据这个问题,您可以尝试使用ServiceBroker


如果在同一个过程中运行它们,它将在同一个线程中启动(在同一个内部事务中,什么可以使日志非常大)。

如果在同一个过程中运行它们,它将在同一个线程中启动(在同一个内部事务中,什么可以使日志非常大)。

不使用纯T-SQL。但是你可以编写一个小的dotNET应用程序来轻松地异步运行它们,只要你保留连接选项,直到这三个选项都完成。

不使用纯T-SQL。但是,您可以编写一个小型的dotNET应用程序来轻松地异步运行它们,只要您保留连接选项,直到这三个选项都完成。

这在SQL 2005和更高版本中是可能的。请看一下在SQL 2005及更高版本中这是可能的。查看

如果两个存储过程具有相同的参数,则可以创建一个新的存储过程 像


你可以试试。我确信它是多么合适。

如果两个存储过程都有相同的参数,那么您可以创建一个新的存储过程 像


你可以试试。我确信这是多么合适。

该过程必须在MS SQL Express Edition上运行,因此无法使用作业。我将修正这个问题,提到这一点。这个程序叫什么?为什么不让调用方处理线程?SQL Server正在启动时调用该过程。我总是可以通过让SQLServer单独调用这些过程来解决这个问题,但我想我会检查一下是否有更优雅的方法。我有一种感觉,我正试图做一些事情,打破事务的ACID原则8)Express使用直接T-SQL是可能的:该过程必须在MS SQL Express Edition上运行,因此不能使用作业。我将修正这个问题,提到这一点。这个程序叫什么?为什么不让调用方处理线程?SQL Server正在启动时调用该过程。我总是可以通过让SQLServer单独调用这些过程来解决这个问题,但我想我会检查一下是否有更优雅的方法。我有一种感觉,我正试图做一些事情,打破事务的ACID原则8)使用直接T-SQL的Express是可能的:
create third procedure
(@colname int)
as
 begin

exec first procedure
exec second procedure
end

exec third procedure