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

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

语法为:

WAITFOR {    DELAY 'time_to_pass'   | TIME 'time_to_execute'   | [ ( receive_statement ) | ( get_conversation_group_statement ) ]     [ , TIMEOUT timeout ]}

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

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语句。

【转】邀月工作室

SQL Server 2008之WaitFor相关推荐

  1. SQL Server 2008中SQL之WaitFor

    SQL Server 2008中SQL应用系列--目录索引 在SQL Server 2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当.但使用更加简捷. 看MSDN: ht ...

  2. SQL Server 2008/2012中SQL应用系列及BI学习笔记系列--目录索引

    SQL Server 2008中的一些特性总结及BI学习笔记系列,欢迎与邀月交流. 3w@live.cn  ◆0.SQL应用系列 1.SQL Server 2008中SQL增强之一:Values新用途 ...

  3. Sql Server 2008 R2 清理内存的三种方法

    公司最近上线一套系统,运行中发现,SQL Server 2008 R2运行越久,占用内存会越来越大,导致最后不得不重启Sql Server来解决,或者是因为Sql 2008本身内存回收机制做的不够好, ...

  4. SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引 @邀月

    邀月 的数据库学习 http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html SQL Server 2008中SQL应用系列及BI ...

  5. PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)

    DBA可以使用的工具很多,对于SQL Server来说,有查询分析器.事件探查器.命令行工具等,其中SQL语句是重中之重,但是PowerShell的出现使得DBA又多了一种选择. 测试脚本下载 本系列 ...

  6. sql server 2008连接oracle操作步骤详细记录,SQLServer连接Oracle详细步骤

    我们知道SQL Server和Oracle其实很多原理都类似.特别是一些常用的SQL语句都是按照标准来.所以它们也可以有一定的互操作性的.这里 我们知道SQL Server和Oracle其实很多原理都 ...

  7. [转]实战 SQL Server 2008 数据库误删除数据的恢复

    实战 SQL Server 2008 数据库误删除数据的恢复 关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete ...

  8. 基于Sql Server 2008的分布式数据库的实践(一)

    原文 基于Sql Server 2008的分布式数据库的实践(一) 配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选 ...

  9. 在SQL Server 2008中配置文件流(FILESTREAM)

    SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM),它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据,例如文档.图片.音频.视频等等.文件流主 ...

最新文章

  1. mysql的判断更新_mysql判断记录是否存在,存在则更新,不存在则插入
  2. iOS唯一标示符引导
  3. matlab生成wav文件并用python验证
  4. home目录迁移至新分区
  5. 百度的一个Ajax跨域方法 JavaScript是没有域的限制
  6. pyecharts第九节、旭日图(现代饼图)
  7. vue中设置height:100%无效的问题及解决方法
  8. 比较=、==、===
  9. 查看matlab当前路径,MATLAB R2012a 的当前路径和路径搜索
  10. Android Layout标签之-viewStub,requestFocus,merge,include
  11. 3D点云数据标注工具推荐
  12. Teamview使用方法说明
  13. 微信小程序打开文档功能
  14. 未能成功加载扩展程序_该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的解决办法...
  15. TCO14, I bought a watch last year
  16. java矩形面积_Java编程求矩形的面积
  17. 软件工程基础知识 二
  18. 使用 vscode 编辑html后缀但包含jsp、django、erb、php模板标签时,配置实现正确格式化文档
  19. 深恶痛绝……残忍虐杀何时终止?
  20. 混合正弦余弦算法和Lévy飞行的麻雀算法

热门文章

  1. 自己写的程序密码功能 ------数字功能
  2. Redis的集群模式
  3. 阿里巴巴连任 Java 全球管理组织席位
  4. 杨元庆:兔子要变成狼靠的是体制的激励
  5. 肠子的小心思(二):你坐在马桶上的姿势很可能不正确
  6. 深入理解Java中为什么内部类可以访问外部类的成员
  7. Linux中的文件复制:cp和scp
  8. JSON.parse 函数应用 (复制备忘)
  9. Sql server 阻塞定位
  10. Tutorial——使用Maven开发Cloud Driver