sql waitfor 定时执行存储过程,触发器,T-SQL语句···_沙图士- by Wade ...

指定触发语句块、存储过程或事务执行的时间、时间间隔或事件。

语法

WAITFOR { DELAY 'time' | TIME 'time' }

参数

DELAY

指示 Microsoft® SQL Server™ 一直等到指定的时间过去,最长可达 24 小时。

'time'

要等待的时间。可以按 datetime 数据可接受的格式指定 time,也可以用局部变量指定此参数。不能指定日期。因此,在 datetime 值中不允许有日期部分。

TIME

指示 SQL Server 等待到指定时间。

注释

执行 WAITFOR 语句后,在到达指定的时间之前或指定的事件出现之前,将无法使用与 SQL Server 的连接。

若要查看活动的进程和正在等待的进程,请使用 sp_who

示例
A. 使用 WAITFOR TIME

下例在晚上 10:20 执行存储过程 update_all_stats

BEGIN
   WAITFOR TIME '22:20'
   EXECUTE update_all_stats
END

有关使用此过程更新数据库中所有统计的更多信息,请参见 中的示例。

B. 使用 WAITFOR DELAY

下例说明如何对 WAITFOR DELAY 选项使用局部变量。将创建一个存储过程,该过程将等待可变的时间量,然后将所经过的小时、分钟和秒数信息返回给用户。

CREATE PROCEDURE time_delay @@DELAYLENGTH char(9)
AS
DECLARE @@RETURNINFO varchar(255)
BEGIN
   WAITFOR DELAY @@DELAYLENGTH
   SELECT @@RETURNINFO = 'A total time of ' + 
                  SUBSTRING(@@DELAYLENGTH, 1, 3) +
                  ' hours, ' +
                  SUBSTRING(@@DELAYLENGTH, 5, 2) + 
                  ' minutes, and ' +
                  SUBSTRING(@@DELAYLENGTH, 8, 2) + 
                  ' seconds, ' +
                  'has elapsed! Your time is up.'
   PRINT @@RETURNINFO
END
GO
-- This next statement executes the time_delay procedure.
EXEC time_delay '000:00:10'
GO

下面是结果集:

A total time of 000 hours, 00 minutes, and 10 seconds, has elapsed! Your time is up.
再比如下面: 到了中午11点20的时候执行查询语句
use mmcs
BEGIN
waitfor TIME '11:19:50'
select jsbh,jsyhm,xm,jg from zjsxx
END
还有:

中午12点下班时显示系统当前日期和具体时间。

BEGIN

    WAITFOR TIME '12:00'

    SELECT GETDATE()

    PRINT '该下班了!'

END



郑重声明:资讯 【sql waitfor 定时执行存储过程,触发器,T-SQL语句···_沙图士- by Wade ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——