基本上,我想在T-SQL中执行此操作
1)执行SPROC1
2)完成SPROC1后,执行SPROC2
3)完成SPROC2后,执行SPROC3
我知道这可以使用SSIS。如果有任何办法可以做到这一点吗?
由于
答案 0 :(得分:2)
试试这个:
Execute SPROC1
execute SPROC2
execute SPROC3
SPROC2在SPROC1完成之前不会运行,然后在SPROC2完成之前SPROC3不会运行。
你可以测试一下:
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
输出:
----------- -----------------------
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 :(得分:1)
对于一次数据库调用,请使用包装器
CREATE PROC SPROCwrapper
AS
EXEC SPROC1
EXEC SPROC2
EXEC SPROC3
GO
...或根据KM的答案发送3行。
SQL按顺序执行