1 votes

Exécuter le SPROC après l'achèvement d'un autre SPROC

Essentiellement, je veux faire ceci en T-SQL

1) Exécuter SPROC1
2) A la fin de SPROC1, exécuter SPROC2
3) Une fois la SPROC2 terminée, exécuter la SPROC3.

Je sais que cela est possible avec SSIS. Y a-t-il un moyen de le faire ?

Gracias

2voto

KM. Points 51800

Essayez ceci :

Execute SPROC1
execute SPROC2
execute SPROC3

SPROC2 ne sera pas exécuté tant que SPROC1 ne sera pas terminé, puis SPROC3 ne sera pas exécuté tant que SPROC2 ne sera pas terminé.

Vous pouvez le tester :

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

SORTIE :

----------- -----------------------
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)

1voto

gbn Points 197263

Pour un appel à la base de données, utilisez un wrapper

CREATE PROC SPROCwrapper
AS
EXEC SPROC1
EXEC SPROC2
EXEC SPROC3
GO

... ou envoyer 3 lignes selon la réponse de KM.

Le SQL est exécuté de manière séquentielle

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X