J'ai une procédure stockée qui exécute une autre procédure à l'intérieur. La seconde prend parfois du temps à courir mais la première semble se terminer avant d'attendre la seconde. Cela a entraîné des données manquantes, qui auraient dû être mises à jour par la deuxième procédure. Y a-t-il une limite de délai dans la première procédure et peut-elle être prolongée?EXEC Procédure stockée dans un autre n'attend pas pour terminer
Répondre
créer une nouvelle table:
LogInfo
LogID int auto number/identity primary key
LogDate date default current date and time
LogValue string
dans chaque procédure ajouter INSERTs comme ceci:
INSERT INTO LogInfo (LogValue) VALUES ('starting procedure A')
...
INSERT INTO LogInfo (LogValue) VALUES ('Calling procedure B')
...
INSERT INTO LogInfo (LogValue) VALUES ('ending procedure A')
faites ceci
SELECT * FROM LogInfo ORDER BY LogID
pour voir ce qui est arrivé, je l'espère, vous verrez ceci parce que les procédures sont séquentielles et que B ne peut pas terminer après A:
starting procedure A
Calling procedure B
starting procedure B
ending procedure B
ending procedure A
Peut-être ajouter à cette table de journal certaines colonnes pour suivre les valeurs que vous voyez modifiées ou non modifiées à des points spécifiques pendant l'exécution? –
Merci, je vais essayer. Je ne pensais pas que A pourrait finir avant B mais je reçois juste des résultats étranges. – markvpc
@ CL4NCY, cela prouvera d'une manière ou d'une autre ce qui se passe. –
Je suppose que la procédure stockée interne est en fait en train de terminer/quitter lorsque les procédures stockées s'exécutent séquentiellement et symétriquement. Vous pouvez essayer de scripter la procédure stockée externe et la déposer dans Management Studio, supprimer la déclaration Create Procedure, remplacer les arguments par Declare et ajouter des instructions SET pour les définir sur les valeurs que vous utilisez lors de votre test. En outre, mettez Print instructions après l'appel à la procédure stockée interne et voir si elle se termine.
Vous vous trompez, c'est compréhensible. Les procédures stockées s'exécutent de manière synchrone. Cependant, pour diverses raisons, les résultats de la procédure interne peuvent ne pas être visibles pour un processus externe avant qu'ils ne se soient réellement produits. C'est peut-être pourquoi vous voyez tout ce que vous voyez qui vous amène à croire que l'ordre d'achèvement n'est pas synchrone.
- 1. Pourquoi ne peut-on pas utiliser l'instruction INSERT EXEC dans une procédure stockée appelée par une autre procédure stockée?
- 2. Procédure stockée exécutant une autre procédure stockée
- 3. Problème connu ?: SQL Server 2005 procédure stockée ne parvient pas à terminer avec un paramètre
- 4. Affecter les résultats d'une procédure stockée dans une variable dans une autre procédure stockée
- 5. Appel d'une procédure stockée à partir d'une autre procédure stockée
- 6. TSQL: appel d'une procédure stockée à partir d'une autre procédure stockée et lecture du résultat
- 7. Comment utiliser une valeur d'une procédure stockée dans une autre?
- 8. Appel dynamique d'une procédure stockée à partir d'une autre procédure stockée
- 9. appel procédure stockée et le passage de paramètres d'une autre procédure stockée
- 10. Procédure stockée ne pas utf-16
- 11. Appel d'une procédure stockée Sybase à partir d'une autre procédure stockée
- 12. Problème de procédure stockée SQL Server appelant une autre procédure stockée
- 13. Comment utiliser les résultats d'une procédure stockée dans une autre?
- 14. Création d'une procédure stockée dans une autre base de données
- 15. Comment appeler une procédure stockée à partir d'une autre procédure stockée dans Oracle
- 16. Appeler une procédure stockée d'une autre en C#
- 17. Obtention de valeur à partir d'une procédure stockée dans une autre procédure stockée
- 18. Procédure Mysql Call Stored d'une autre procédure stockée
- 19. Syntaxe de procédure stockée
- 20. Catch/Travailler avec/Gérer plusieurs jeux de données dans une procédure stockée à partir d'une autre procédure stockée
- 21. Quelle est la syntaxe pour définir une procédure Oracle dans une autre procédure stockée?
- 22. Problème appelant la procédure stockée d'une autre procédure stockée via ASP classique
- 23. procédure stockée supprimer requête
- 24. procédure stockée générique dans Oracle
- 25. Procédure stockée dans nHibernate?
- 26. Exécuter une procédure stockée dans une vue?
- 27. Appel d'une procédure stockée avec une autre dans Oracle
- 28. Procédure stockée?
- 29. Comment créer un type complexe à partir d'une procédure stockée qui utilise exec()?
- 30. Effectuer une action dans une procédure stockée en fonction du résultat d'une autre action dans la procédure stockée?
D'où exécutez-vous la procédure stockée? –