SQL Server 2008中SQL之WaitFor使用介绍

看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语句。
邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。

(0)

相关推荐

  • SQL Server 2008中SQL之WaitFor使用介绍

    看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_

  • SQL Server 2008中SQL查询语句字段值不区分大小写的问题解决

    一.问题 最近在一个系统的对外接口中,经过测试人员测试,发现登录接口中输入的用户名不区分大小写,经过排查找原因,原来是由于数据库忽略了大小写. 二.解决办法 Select * from Base_UserInfo where User_Account='Admin' COLLATE Chinese_PRC_CS_AI; 1.数据库设置排序规则,如下图所示: 2.SQL语句设置,如下: alter database 你的数据库名 COLLATE Chinese_PRC_CS_AI; 3.字段级设置

  • SQL Server 2008中的FileStream介绍

    很多朋友并不知道FileStream 这个功能.因为FileStream 一般在安装的时候默认是不启用的,在SQL Server 2008中,引入了Filestream,使用它可以将非机构化大型数据(如文本文档.图像和视频)等以varbinary(max)的形式存储在文件系统中.使用数据库的备份还原功能可以将这些数据一起备份还原. 在选择数据库文件路径那个窗口,有一个标签是"FileStream".如果在安装的时候你没有启用,安装后可以通过以下设置来开启FileStream 功能. 1

  • SQL Server 2008中的数据表压缩功能详细介绍

    SQL Server 2005 SP2为我们带来了vardecimal功能,当时针对decimail和numeric数据类型推出了新的存储格式--vardecimal.vardecimal存储格式允许 decimal和numeric数据类型的存储作为一个可变长度列. 这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可以为典型的数据仓库节省30%的空间,而SQL Server 2008在这一基础上又进一步增强了数据压缩功能.SQL Server 2008现在支持

  • SQL Server 2008中的代码安全(三) 通过PassPhrase加密

    前言: 在SQL Server 2005和SQL Server 2008之前.如果希望加密敏感数据,如财务信息.工资或身份证号,必须借助外部应用程序或算法.SQL Server 2005引入内建数据加密的能力,使用证书.密钥和系统函数的组合来完成. 与数字证书类似.SQL Server 证书包括公钥和私钥这一对密钥,它们都用来加密和解密数据.SQL Server也拥有创建非对称密钥和对称密钥对象的能力.非对称密钥(asymmetric key)与证书相似,公钥用来加密数据库,私钥用来解密数据.非

  • SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

    本文主要 涉及DDL触发器和登录触发器的应用实例. MicrosoftSQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触发器.触发器为特殊类型的存储过程,可在执行语言事件时自动生效.SQL Server 包括三种常规类型的触发器:DML 触发器.DDL 触发器和登录触发器. 1.当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器.DML 事件包括在指定表或视图中修改数据的 INSERT 语句.UPDATE 语句或 DELETE 语句.DML 触发器可

  • SQL Server 2008中的代码安全(八)透明加密(TDE)

    当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密.在数据页读入内存时解密.如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问.这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,我们至少可以将一些初级的恶意窥视拒之见外. 下面的两个例子将展示如何启用和维护透明数据加密. 示例一.启用透明加密(TDE) /********************TDE**************** 3w@live.cn ****************/ U

  • 详解SQL Server 2008工具SQL Server Profiler

    一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 1.图形化监视SQL Server查询: 2.在后台收集查询信息: 3.分析性能: 4.诊断像死锁之类的问题: 5.调试T-SQL语句: 6.模拟重放SQL Server活动: 也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动.这样的活动被称为Profiler跟踪. 1.Profiler跟踪 从开始=>所有程序=>Microsoft SQL Server 2

  • SQL SERVER 2008 中三种分页方法与比较

    建立表: 复制代码 代码如下: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar] (50) COLLATE Chinese_PRC_

  • SQL Server 2008中的代码安全(六) 对称密钥加密

    证书和非对称密钥使用数据库级的内部公钥加密数据,并且使用数据库级内部私钥解密数据.而对称密钥相对简单,它们包含一个同时用来加密和解密的密钥.困此,使用对称密钥加密数据更快,并且用在大数据时更加合适.尽管复杂度是考虑使用它的因素,但它仍然是一个很好的加密数据的选择. 我们看一组例子: 示例一.创建对称密钥 对称密钥的特性是:在数据库会话中使用它对数据进行加密和解密前必须首先打开. 创建对称密钥使用如下命令:CREATE SYMMETRIC KEY  创建对称密钥.(http://msdn.micr

随机推荐