Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在另一个存储过程完成后执行存储过程_Sql Server_Tsql_Sql Server 2008 - Fatal编程技术网

Sql server 在另一个存储过程完成后执行存储过程

Sql server 在另一个存储过程完成后执行存储过程,sql-server,tsql,sql-server-2008,Sql Server,Tsql,Sql Server 2008,本质上,我想在T-SQL中实现这一点 1) 执行存储过程1 2) 完成SPROC1后,执行SPROC2 3) 完成存储过程2后,执行存储过程3 我知道这是可能的使用SSIS。如果有什么办法我可以做到这一点 谢谢试试这个: Execute SPROC1 execute SPROC2 execute SPROC3 在SPROC1完成之前,SPROC2不会运行,然后在SPROC2完成之前,SPROC3不会运行 您可以测试它: CREATE PROCEDURE pTest1 AS SELECT 1,G

本质上,我想在T-SQL中实现这一点

1) 执行存储过程1
2) 完成SPROC1后,执行SPROC2
3) 完成存储过程2后,执行存储过程3

我知道这是可能的使用SSIS。如果有什么办法我可以做到这一点

谢谢

试试这个:

Execute SPROC1
execute SPROC2
execute SPROC3
在SPROC1完成之前,SPROC2不会运行,然后在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)

对于一个DB调用,使用包装器

CREATE PROC SPROCwrapper
AS
EXEC SPROC1
EXEC SPROC2
EXEC SPROC3
GO
。。。或根据KM的回答发送3条线路

SQL是按顺序执行的