SQL Server 2008中SQL之WaitFor使用介绍 |
本文标签:WaitFor 看MSDN: 语法为: WAITFOR 以下示例在晚上 10:20 ( 复制代码 代码如下: USE msdb; EXECUTE sp_add_job @job_name = TestJob; BEGIN WAITFOR TIME 22:20; EXECUTE sp_update_job @job_name = TestJob, @new_name = UpdatedJob; END; GO 以下示例在两小时的延迟后执行存储过程 。注意:Delay最多不超过24小时 复制代码 代码如下: BEGIN WAITFOR DELAY 02:00; EXECUTE sp_helpdb; END; GO 以下示例显示如何对 WAITFOR DELAY 选项使用局部变量 。将创建一个存储过程,该过程将等待可变的时间段,然后将经过的小时、分钟和秒数信息返回给用户 。 复制代码 代码如下: USE AdventureWorks2008R2; GO IF OBJECT_ID(dbo.TimeDelay_hh_mm_ss,P) IS NOT NULL DROP PROCEDURE dbo.TimeDelay_hh_mm_ss; GO CREATE PROCEDURE dbo.TimeDelay_hh_mm_ss ( @DelayLength char(8)= 00:00:00 ) AS DECLARE @ReturnInfo varchar(255) IF ISDATE(2000-01-01 + @DelayLength + .000) = 0 BEGIN SELECT @ReturnInfo = Invalid time + @DelayLength + ,hh:mm:ss, submitted.; -- This PRINT statement is for testing, not use in production. PRINT @ReturnInfo RETURN(1) END BEGIN WAITFOR DELAY @DelayLength SELECT @ReturnInfo = A total time of + @DelayLength + , hh:mm:ss, has elapsed! Your time is up. -- This PRINT statement is for testing, not use in production. PRINT @ReturnInfo; END; GO /* This statement executes the dbo.TimeDelay_hh_mm_ss procedure. */ EXEC TimeDelay_hh_mm_ss 00:00:10; GO 执行结果:A total time of 00:00:10, in hh:mm:ss, has elapsed.Your time is up.小结:这是一种轻巧的解决方案 。当你没有权限指定job时,可以考虑用WaitFor语句 。 邀月注:本文版权由邀月和博客园共同所有,转载请注明出处 。 |