T-SQL在SQL Server 2012中通过脚本执行定时更新



对于我的生产环境,每天晚上9点我必须登录并手动运行一些特定数据库的这个脚本:

Update table
set status = 'Pending'
Where dbid = x

是否有一种方法可以从脚本调度这种更新,以便在所需的时间执行?比如:

if time = 9:00 then update table...

我已经阅读了SQL Server代理作业/任务调度程序,但如果可能的话,我试图避免此选项。

如果你不想使用任务调度程序等,那么一个选择可能是使用批处理文件。相当笨拙,但可能值得一试。

。在批处理文件中,使用TIMEOUT命令等待指定的秒数。您必须根据从启动批处理文件到晚上9点需要多少秒来计算所需的秒数。TIMEOUT完成后,运行SQLCMD(或类似的)来运行所需的sql。

完全在TSQL内部的另一个选项可能是使用WAITFOR TSQL命令。从SSMS中所需的数据库中启动一些SQL,如下所示:

WAITFOR TIME '21:00'  -- wait until 9pm
-- do your update table here

最新更新