指定觸發(fā)語句塊、存儲(chǔ)過程或事務(wù)執(zhí)行的時(shí)間、時(shí)間間隔或事件。
WAITFOR { DELAY 'time' | TIME 'time'
}
DELAY
指示 Microsoft? SQL Server? 一直等到指定的時(shí)間過去,最長可達(dá) 24 小時(shí)。
'time'
要等待的時(shí)間??梢园?datetime 數(shù)據(jù)可接受的格式指定 time,也可以用局部變量指定此參數(shù)。不能指定日期。因此,在 datetime 值中不允許有日期部分。
TIME
指示 SQL Server 等待到指定時(shí)間。
執(zhí)行 WAITFOR 語句后,在到達(dá)指定的時(shí)間之前或指定的事件出現(xiàn)之前,將無法使用與 SQL Server 的連接。
若要查看活動(dòng)的進(jìn)程和正在等待的進(jìn)程,請(qǐng)使用 sp_who。
下例在晚上 10:20 執(zhí)行存儲(chǔ)過程 update_all_stats。
BEGIN
WAITFOR TIME '22:20'EXECUTE update_all_stats
END
有關(guān)使用此過程更新數(shù)據(jù)庫中所有統(tǒng)計(jì)的更多信息,請(qǐng)參見 UPDATE STATISTICS 中的示例。
下例說明如何對(duì) WAITFOR DELAY 選項(xiàng)使用局部變量。將創(chuàng)建一個(gè)存儲(chǔ)過程,該過程將等待可變的時(shí)間量,然后將所經(jīng)過的小時(shí)、分鐘和秒數(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
下面是結(jié)果集:
A total time of 000 hours, 00 minutes, and 10 seconds, has elapsed! Your time is up.
相關(guān)文章