WAITFOR WAITFOR - 北京怡康軟件科技有限公司 資源網 "/>
指定觸發(fā)語句塊、存儲過程或事務執(zhí)行的時間、時間間隔或事件。
WAITFOR { DELAY 'time' | TIME 'time'
}
DELAY
指示 Microsoft® SQL Server™ 一直等到指定的時間過去,最長可達 24 小時。
'time'
要等待的時間??梢园?datetime 數(shù)據(jù)可接受的格式指定 time,也可以用局部變量指定此參數(shù)。不能指定日期。因此,在 datetime 值中不允許有日期部分。
TIME
指示 SQL Server 等待到指定時間。
執(zhí)行 WAITFOR 語句后,在到達指定的時間之前或指定的事件出現(xiàn)之前,將無法使用與 SQL Server 的連接。
若要查看活動的進程和正在等待的進程,請使用 sp_who。
下例在晚上 10:20 執(zhí)行存儲過程 update_all_stats。
BEGIN
WAITFOR TIME '22:20'EXECUTE update_all_stats
END
有關使用此過程更新數(shù)據(jù)庫中所有統(tǒng)計的更多信息,請參見 UPDATE STATISTICS 中的示例。
下例說明如何對 WAITFOR DELAY 選項使用局部變量。將創(chuàng)建一個存儲過程,該過程將等待可變的時間量,然后將所經過的小時、分鐘和秒數(shù)信息返回給用戶。
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.
相關文章