Выполнить SPROC после завершения другого SPROC - PullRequest
1 голос
/ 07 июня 2010

По сути, я хочу сделать это в T-SQL

1) Выполнить SPROC1
2) После завершения SPROC1 выполните SPROC2
3) После завершения SPROC2 выполните SPROC3 * ​​1005 *

Я знаю, что это возможно при использовании служб SSIS. Если есть какой-нибудь способ, которым я могу сделать это?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 июня 2010

попробуйте это:

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

ВЫВОД:

----------- -----------------------
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 голос
/ 07 июня 2010

Для одного вызова БД используйте оболочку

CREATE PROC SPROCwrapper
AS
EXEC SPROC1
EXEC SPROC2
EXEC SPROC3
GO

... или отправьте 3 строки согласно ответу КМ.

SQL выполняется последовательно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...