2010-01-19 6 views
0

Quelqu'un peut-il m'aider à créer un travail SQL dans SQL Server Agent (SQL 2008), qui s'exécutera dans un intervalle purticulaire (Ex: Daily) et sélectionner des enregistrements dans une table avec status = 1) et passer à une autre procédure stockée qui accepte le nom de l'élève et l'âgeSQL Job: comment démarrer?

+0

Quelle version de SQL utilisez-vous? – ddc0660

+0

Si vous utilisez l'édition Express, l'agent SQL n'est pas disponible. Pourrait être le problème? – pvieira

Répondre

1

Voici l'approche que je prendrais:

Créer le script

  • Créer un script SQL avec un curseur en elle (la seule raison pour laquelle je dis curseur est parce que vous passez le nom et l'âge de l'étudiant à une autre st ORed procédure)
  • Lire la StudentName et l'âge dans @variables
  • Execute le proc stocké avec des paramètres appropriés
  • Fetch ligne suivante et boucle
  • IMP: TEST le script

Save the script dans un fichier SQL pour référence ultérieure.

Dans SQL Server Agent

  • Créer un nouveau point d'emploi
  • à la base de données appropriée
  • collez le script SQL (ci-dessus) dans la zone de script du travail
  • Créer un programme approprié (tous les jours, à 3h15 du matin)
  • Si les opérateurs et SQL Mail sont configurés, ajoutez-les afin de recevoir des notifications par e-mail
  • Enregistrer le travail
  • IMP: TEST le travail
1

Je pense que vous meilleure solution est d'appeler un proceudre stocké de l'agent avec des arguments fixes. Ensuite, à l'intérieur de cette procédure stockée, vous pouvez faire une boucle comme ceci: execute a stored procedure over a set without using a cursor

+0

La suggestion de technique suggérée serait tellement plus inefficace que l'utilisation d'un curseur de lecture rapide en lecture seule. –