2008-12-17 7 views
0

Lors d'une étape de script dans une tâche planifiée dans SQL Server Agent 2005, j'ai besoin de déclencher une webscript qui s'exécute sur un serveur différent. Je fais ceci:Agent SQL Server: Comment "dormir"?

Dim ie 
Set ie = CreateObject("InternetExplorer.Application") 

ie.navigate "...to my dreamscript" 

' Wait till IE is ready 
Do While ie.Busy 
    (1) 
Loop 

ie.Quit 
set ie = Nothing 

A (1) Je voudrais "sommeil" (par exemple WScript.Sleep (..)), mais WScript est pas disponible dans cet environnement. Y a-t-il une autre façon de "dormir" pendant un moment?

Répondre

1

Vous pouvez écrire une application de console et exécuter l'application de console dans un travail d'agent SQL.

+0

Merci, ce n'est pas vraiment la réponse à la question, mais une bonne solution. Je vais appeler le script en utilisant: wscript myscript.vbs/T: 90 (ce sera timeout le script @ 90 secondes) –

0

Vous pouvez exécuter le script en utilisant une tâche de l'Agent SQL Server avec un type de «Système d'exploitation (CmdExec)». Cela nécessite que xp_cmdshell soit activé et il est souvent désactivé (par défaut) en raison de problèmes de sécurité. Cependant, il vous permet d'initier des programmes, tels que wscript, qui sont exécutés à l'invite de commande.

Vous pouvez déplacer le code dans SQLCLR où vous pouvez écrire une procédure stockée dans C# ou VB.Net. Le code SQLCLR VB.Net serait assez similaire à votre manuscrit original.

2

Si vous essayez seulement d'avoir la tâche Agent SQL Server qui attend pendant une période de temps utiliser une tâche T-SQL avec le script

WAITFOR DELAY '01: 00: 00' - attendre un heure

et modifiez l'heure à la durée que vous souhaitez attendre.

HTH Andy

+0

Bonjour Andy, c'est une possibilité de dormir, mais ça ne marchera pas pour mes fins - j'ai besoin "dormir" pendant le chargement de l'IE (voir ci-dessus) –

Questions connexes