SQLServer2008中SQL增强之WaitFor命令详解

上次我们介绍了:SQL Server 2008中SQL增强之Merge命令详解,本文我们主要介绍一下SQL Server 2008中SQL增强之WaitFor命令的使用,接下来我们就开始介绍。

创新互联是一家集网站建设,武隆企业网站建设,武隆品牌网站建设,网站定制,武隆网站建设报价,网络营销,网络优化,武隆网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

在SQL Server 2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当。但使用更加简捷。

看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187331.aspx

语法为:

 
 
 
  1. WAITFOR   
  2. {  
  3. DELAY 'time_to_pass'   
  4. | TIME 'time_to_execute'   
  5. | [ ( receive_statement ) | ( get_conversation_group_statement ) ]   
  6. [ , TIMEOUT timeout ]  

以下示例在晚上 10:20 (22:20) 执行存储过程sp_update_job。

 
 
 
  1. USE msdb;  
  2. EXECUTE sp_add_job @job_name = 'TestJob';  
  3. BEGIN  
  4. WAITFOR TIME '22:20';  
  5. EXECUTE sp_update_job @job_name = 'TestJob',  
  6. @new_name = 'UpdatedJob';  
  7. END;  
  8. GO 

以下示例在两小时的延迟后执行存储过程。注意:Delay最多不超过24小时

 
 
 
  1. BEGIN  
  2. WAITFOR DELAY '02:00';  
  3. EXECUTE sp_helpdb;  
  4. END;  
  5. GO 

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

 
 
 
  1. USE AdventureWorks2008R2;  
  2. GO  
  3. IF OBJECT_ID('dbo.TimeDelay_hh_mm_ss','P') IS NOT NULL  
  4. DROP PROCEDURE dbo.TimeDelay_hh_mm_ss;  
  5. GO  
  6. CREATE PROCEDURE dbo.TimeDelay_hh_mm_ss   
  7. (  
  8. @DelayLength char(8)= '00:00:00'  
  9. )  
  10. AS  
  11. DECLARE @ReturnInfo varchar(255)  
  12. IF ISDATE('2000-01-01 ' + @DelayLength + '.000') = 0  
  13. BEGIN  
  14. SELECT @ReturnInfo = 'Invalid time ' + @DelayLength   
  15. + ',hh:mm:ss, submitted.';  
  16. -- This PRINT statement is for testing, not use in production.  
  17. PRINT @ReturnInfo   
  18. RETURN(1)  
  19. END  
  20. BEGIN  
  21. WAITFOR DELAY @DelayLength  
  22. SELECT @ReturnInfo = 'A total time of ' + @DelayLength + ',   
  23. hh:mm:ss, has elapsed! Your time is up.'  
  24. -- This PRINT statement is for testing, not use in production.  
  25. PRINT @ReturnInfo;  
  26. END;  
  27. GO  
  28. /* This statement executes the dbo.TimeDelay_hh_mm_ss procedure. */  
  29. EXEC TimeDelay_hh_mm_ss '00:00:10';  
  30. GO 

执行结果:

A total time of 00:00:10, in hh:mm:ss, has elapsed.Your time is up.

小结:这是一种轻巧的解决方案。当你没有权限指定job时,可以考虑用WaitFor语句。

关于SQL Server 2008中SQL增强之WaitFor命令的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!

文章名称:SQLServer2008中SQL增强之WaitFor命令详解
URL链接:http://www.shufengxianlan.com/qtweb/news12/31412.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联