2010-06-07 43 views
1

從本質上講,我想這樣做在T-SQL執行SPROC

1)執行SPROC1
2)在SPROC1完成後,執行SPROC2
3)在SPROC2完成後,執行SPROC3

我知道這可以使用SSIS。如果有什麼辦法可以做到這一點?

感謝

回答

2

試試這個:

Execute SPROC1 
execute SPROC2 
execute SPROC3 

SPROC2不會運行,直到SPROC1完成,然後SPROC3不會運行,直到SPROC2完成。

你可以測試一下:

CREATE PROCEDURE pTest1 AS 
SELECT 1,GETDATE() 
WAITFOR DELAY '00:00:02' 
RETURN 0 
go 
CREATE PROCEDURE pTest2 AS 
SELECT 2,GETDATE() 
WAITFOR DELAY '00:00:02' 
RETURN 0 
go 
CREATE PROCEDURE pTest3 AS 
SELECT 3,GETDATE() 
WAITFOR DELAY '00:00:02' 
RETURN 0 
go 

EXEC pTest1 
EXEC pTest2 
EXEC pTest3 

OUTPUT:

----------- ----------------------- 
1   2010-06-07 08:43:08.423 

(1 row(s) affected) 


----------- ----------------------- 
2   2010-06-07 08:43:10.423 

(1 row(s) affected) 


----------- ----------------------- 
3   2010-06-07 08:43:12.423 

(1 row(s) affected) 
1

對於一個數據庫調用,使用包裝

CREATE PROC SPROCwrapper 
AS 
EXEC SPROC1 
EXEC SPROC2 
EXEC SPROC3 
GO 

...或發送3條線按KM的回答。

SQL按順序執行

相關問題