2010-11-09 3 views
2

J'essaie de trouver un moyen d'avoir SQL Server 'SQL Agent' exécuter un morceau de code particulier sur les événements d'étape de travail. J'avais espéré qu'il y avait un moyen d'utiliser SMO pour enregistrer une méthode de rappel afin que lorsque les étapes de travail commencent ou changent de statut, mon code est appelé. Je n'ai pas de succès. Y a-t-il un moyen de faire en sorte que ces événements me soient soumis, plutôt que de faire des sondages?Obtenir l'état du travail de l'agent SQL sans interrogation?

Répondre

3

Il n'y a aucun Smo, DDL ou trace d'événement exposé pour l'exécution du travail (autant que je puisse voir de la documentation en ligne), donc je ne pense pas que vous pouvez faire ce que vous voulez directement. Il serait utile que vous puissiez expliquer exactement quel est votre objectif (et votre version de MSSQL) et quelqu'un peut avoir une suggestion utile. Par exemple, une trace peut être une meilleure idée si vous souhaitez collecter des données d'audit ou de performance.

En attendant, voici quelques idées (surtout pas très « agréable » ones):

  1. Convertir vos travaux en packages SSIS (ils ont un modèle complet de l'événement)
  2. construire quelque chose dans le travail eux-mêmes étapes
  3. achèvement des étapes de travail du journal à une table, et d'utiliser un déclencheur sur la table pour exécuter votre code
  4. exécuter une trace avec l'enregistrement à une table et d'utiliser un déclencheur sur la table pour exécuter votre code
+0

J'ai été absent - réponse tardive. De toute façon, je veux avoir une application déployée localement par laquelle un utilisateur final peut démarrer et surveiller la progression d'un travail d'agent sql distant qui exécute une série d'étapes ssis interdépendantes. C'est un problème moche et nous avons une solution boiteuse en place. Vos idées sont bonnes et pourraient être utiles à quelqu'un d'autre dans cette situation. – JSacksteder

Questions connexes