J'ai un proc stocké qui appelle une série de proc stockés dans le cadre d'une mise à jour de compte. Malheureusement, j'ai une limite de 10 minutes (non liée à SQL Server, délai d'attente externe) et parfois il dépasse le délai d'expiration. (Dans les bonnes conditions, cela peut durer une heure.)Appel d'un proc stocké à partir d'un autre proc stocké ** sans ** imbrication
J'ai essayé différentes solutions. Le code est à peu près aussi optimisé qu'il le sera. Une solution consisterait simplement à avoir un proc appelé initial appelé "proc" stocké "réel"; puisque le timeout ne connaît que le proc initial, le proc réel peut continuer sans entrave. Le problème est que SQL-Server imbrique le procs ... proc A ne finira pas tant que le procs qu'il a appelé (procs B, C et D) n'est pas terminé.
La messagerie interne de SQL Server fonctionnerait, mais notre base de données n'est pas compatible. (Hors de mon contrôle.) Je pensais que le proc initial établirait un travail ponctuel (pour courir une minute plus tard) et laisserais le planificateur de travail l'exécuter, mais nos DBAs ne seront probablement pas heureux si j'ajoute et supprimer des tâches tout le temps.
Y at-il un moyen pour un proc stocké d'EXEC un autre proc stocké, puis de quitter immédiatement alors que le proc appelé continue à s'exécuter?
Ne pas "impliquer" un DBA, faites-en "invoquer" un DBA. –
Je l'ai modifié un peu. J'espère que c'est un peu plus clair. –
Désolé, c'était une blague. "Impliquer" est le mot approprié. "Invoquer" est ce que vous faites quand vous voulez traiter avec les démons, les mauvais esprits, les forces des ténèbres ... et les AD. –