Bonjour,

Pour commencer voici ce que je souhaites faire.
J'ai un procédure stockée, que j'exécute manuellement, contenant de multiples étapes (truncate/drop/create/insert/update ... ouais c'est une grosse procédure :p ). La condition pour exécuter cette procédure est qu'il faut qu'un traitement soit terminé (un applicatif qui bosse tout le week-end et qui met à jour des valeurs dans plusieurs tables, duré des traitements environ 40h +/- 4h).

A partir de cela je souhaite effectuer plusieurs évolutions :

1 - Exécuter automatiquement la procédure une fois que l'application à finit sa partie
2 - Séparer la procédure en différentes étapes afin de mieux gérer et suivre leurs exécutions
3 - Effectuer une gestion des erreurs étape par étape afin d'éviter d'envoyer des données fausses en production si une des étapes bloque.

Pour les points 2 et 3 je sais comment faire via la gestion des "steps" dans les jobs avec le "SQL Server Agent"

Mon problème est pour le point numéro 1.
La première STEP doit être une vérification d'une table précise qui me permet de savoir si l'application source a fini ses traitements.
Je voudrais savoir comment faire pour que si le résultat de ma requête ne correspond pas à une valeur attendu la step sort en erreur ce qui me permet de relancer manuellement la procédure le matin quand j'arrive.


Pour les détails techniques.
La base source est une base ORACLE et les traitements dessus sont gérés via des scripts shell et ils sont pilotés (entre autre) par une table de management.
Il y a un lien entre le serveurs SQL et la base ORACLE et c'est comme cela que je récupère les datas et que je check la fin des traitements (via OPENQUERY)
La requête de check est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
SELECT * FROM OPENQUERY (APPLI, '
	select count(*) as CHECK
	from ma_table_mgmt
	where ETAT = ''0''
	group by etat;'
)
"APPLI" est le nom du lien sur le SSMS

Si cette requête me retourne au moins 1 ligne c'est que les traitements ne sont pas terminés.
Si elle ne retourne aucunes lignes c'est que tous les traitements sont terminé et je peux lancer les étapes suivantes.


D'avance merci pour votre aide.
Nicolas