【问题标题】:SQL Server Agent: How to "sleep"?SQL Server 代理:如何“睡觉”?
【发布时间】:2010-09-27 08:38:24
【问题描述】:

在 SQL Server Agent 2005 计划任务的脚本步骤中,我需要触发在不同服务器上运行的 web 脚本。我正在这样做:

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

在 (1) 我想“睡觉”(例如 WScript.sleep(..)),但 WScript 在此环境中不可用。有没有别的办法可以“睡”一会?

【问题讨论】:

    标签: sql-server scripting vbscript sql-server-agent wsh


    【解决方案1】:

    您可以编写控制台应用程序并在 SQL 代理作业中执行控制台应用程序。

    【讨论】:

    • 谢谢,这不是问题的真正答案,而是一个很好的解决方案。我将使用以下命令调用脚本:wscript myscript.vbs /T:90(这将使脚本超时 @ 90 秒)
    【解决方案2】:

    您可以使用“操作系统 (CmdExec)”类型的 SQL Server 代理任务来执行 wscript。这需要启用 xp_cmdshell,并且出于安全考虑,它通常被禁用(默认情况下)。但是,它确实允许您启动在命令提示符下运行的程序,例如 wscript。

    您可以将代码移动到 SQLCLR 中,您可以在其中使用 C# 或 VB.Net 编写存储过程。 VB.Net SQLCLR 代码与您原来的 wscript 非常相似。

    【讨论】:

      【解决方案3】:

      如果您只是想让等待一段时间的 SQL SErver 代理任务使用带有脚本的 T-SQL 任务

      WAITFOR DELAY '01:00:00' -- 等待一个小时

      并将时间更改为您希望等待的持续时间。

      HTH 安迪

      【讨论】:

      • 你好,安迪,这是一种睡眠的可能性,但它不适合我的目的 - 我需要在 IE 加载时“睡眠”(见上文)
      猜你喜欢
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多