Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Faites en sorte que le serveur exécute automatiquement le script asp tous les jours

Adapté d'un article que j'ai écrit sur aspfaq.com il y a des années.

Utilisez la commande AT et Windows Scripting Host (ou le planificateur de tâches plus rudimentaire) pour planifier un fichier VBS à certains intervalles.

Tout d'abord, remplacez l'ASP par un fichier VBS. Ceci est accompli en (1) changeant l'extension en VBS; (2) changer tous les appels Server.CreateObject en CreateObject ; et, (3) supprimer tous les <%%> délimiteurs et tout code destiné au navigateur (par exemple, instruction response.write ou code HTML côté client). Je n'ai pas rencontré d'autres complications, mais YMMV.

Vous stockez le fichier VBS dans le système de fichiers et utilisez la commande AT pour le planifier (cela planifie en fait son exécution avec le service de planification de Windows). À une invite de commande, vous pouvez utiliser AT seul pour afficher une liste des tâches actuellement dans le calendrier. Vous pouvez utiliser AT /? pour connaître toutes ses possibilités de syntaxe.

Par exemple, pour qu'un fichier s'exécute tous les jours de la semaine à 9h00, je lance ce fichier batch (la première ligne efface les entrées existantes) :    

at /delete /y 
at 9:00 /every:m,t,w,th,f d:\net\shared\getdata.vbs      

Notez qu'il n'y a pas de serveur Web impliqué; le fichier est accessible directement via le système de fichiers. Une fois que j'ai surmonté les obstacles "un utilisateur doit être connecté" et "les tâches doivent être réinitialisées lors du redémarrage" (qui, je pense, sont des problèmes avec la machine particulière qui n'est pas sous notre contrôle), tout a fonctionné bien pour moi.

Pour un exemple d'utilisation de WSH, CDONTS et du planificateur de tâches pour envoyer régulièrement des e-mails, voir KB #221495 .

Si tout ce que vous faites est un travail de base de données dans SQL Server, vous pouvez envisager d'utiliser un travail. Cela vous permettra de conserver tout le traitement du travail dans votre base de données et d'éviter les complications associées à plusieurs systèmes, connexions et à l'adaptation du code ASP pour qu'il ne ressemble pas à un comportement ASP.