2009-11-05 67 views
1

是否可以運行多個在後臺運行的存儲過程?啓動多個存儲過程以在SQL Server Express Edition的後臺運行

存儲過程必須從單個主存儲過程啓動,這與生成多個工作線程的方式相同。例如:

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 

回答

2

沒有這是不可能的,因爲你已經描述了它。你可以運行多個SQL作業,這將同時/

+0

該過程必須在MS SQL Express Edition上運行,因此不能使用作業 。我會修改這個問題。 – 2009-11-05 16:49:47

+0

什麼是調用過程?爲什麼不讓調用者處理線程? – JoshBerke 2009-11-05 16:52:16

+0

SQL Server在啓動時調用該過程。我總是可以通過讓SQL Server單獨調用這些程序來解決這個問題,但我想我會檢查是否有更優雅的方法。 我有一種感覺我正試圖做一些事情來打破交易的ACID原則8) – 2009-11-05 16:58:06

0

,這將啓動同一個線程(並且在相同的內部事務中,什麼可以使日誌非常大)。

0

不符合純粹的T-SQL。但是,只要你離開連接選項,直到所有三個都完成,你可以寫一個dotNET應用程序來輕鬆異步地運行它們。

0

如果兩個存儲過程具有相同的參數,那麼你可以創建一個新的存儲過程 像

create third procedure 
(@colname int) 
as 
begin 

exec first procedure 
exec second procedure 
end 

exec third procedure 

,您可以嘗試。我相信它是多麼恰當。

相關問題