SQL Server 2008中SQL之WaitFor使用介紹
看MSDN:
http://msdn.microsoft.com/zh-cn/library/ms187331.aspx
語(yǔ)法為:
WAITFOR
{
DELAY 'time_to_pass'
| TIME 'time_to_execute'
| [ ( receive_statement ) | ( get_conversation_group_statement ) ]
[ , TIMEOUT timeout ]
}
以下示例在晚上 10:20 (22:20) 執(zhí)行存儲(chǔ)過(guò)程 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
以下示例在兩小時(shí)的延遲后執(zhí)行存儲(chǔ)過(guò)程。注意:Delay最多不超過(guò)24小時(shí)
BEGIN
WAITFOR DELAY '02:00';
EXECUTE sp_helpdb;
END;
GO
以下示例顯示如何對(duì) WAITFOR DELAY 選項(xiàng)使用局部變量。將創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,該過(guò)程將等待可變的時(shí)間段,然后將經(jīng)過(guò)的小時(shí)、分鐘和秒數(shù)信息返回給用戶。
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
執(zhí)行結(jié)果:A total time of 00:00:10, in hh:mm:ss, has elapsed.Your time is up.小結(jié):這是一種輕巧的解決方案。當(dāng)你沒(méi)有權(quán)限指定job時(shí),可以考慮用WaitFor語(yǔ)句。
邀月注:本文版權(quán)由邀月和博客園共同所有,轉(zhuǎn)載請(qǐng)注明出處。
相關(guān)文章
SQL server 2008不允許保存更改的完美解決辦法(圖解)
我重裝系統(tǒng)后就安裝了SQL Server2008R2,第一次使用時(shí)在修改表結(jié)構(gòu)的時(shí)候經(jīng)碰到這樣一個(gè)警告【不允許保存更改。您所做的更改要求刪除并重新創(chuàng)建以下表.對(duì)這樣的錯(cuò)誤提示怎么解決呢?下面小編通過(guò)圖文并茂的形式給大家分享解決辦法2017-01-01
SQL Server把單個(gè)用戶轉(zhuǎn)換成多個(gè)用戶的方法
這篇文章主要介紹了SQL Server把單個(gè)用戶轉(zhuǎn)換成多個(gè)用戶的方法,一條語(yǔ)句即可解決,需要的朋友可以參考下2014-06-06
SQLServer 2008中的代碼安全(五) 非對(duì)稱密鑰加密
非對(duì)稱密鑰包含數(shù)據(jù)庫(kù)級(jí)的內(nèi)部公鑰和私鑰,它可以用來(lái)加密和解密SQL Server數(shù)據(jù)庫(kù)中的數(shù)據(jù),它可以從外部文件或程序集中導(dǎo)入,也可以在SQL Server數(shù)據(jù)庫(kù)中生成。2011-06-06
sql server 2008 r2 express 精簡(jiǎn)版與企業(yè)版的區(qū)別
今天群里發(fā)現(xiàn)有網(wǎng)站問(wèn)sql server 2008 r2 express是什么版本,其實(shí)express表示此版本是精簡(jiǎn)版的,方便學(xué)習(xí)使用,主要是免費(fèi)的2015-09-09
通過(guò)SQLServer 2008 操作 MySQL的方法
在公司中經(jīng)常會(huì)遇到部署多種數(shù)據(jù)庫(kù)環(huán)境的情況,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)經(jīng)常在不同數(shù)據(jù)庫(kù)之間轉(zhuǎn)換確實(shí)有些繁瑣,本篇將介紹從SQLServer 操作MySQL 數(shù)據(jù)庫(kù)的方法。2010-04-04
SQL Server 2008 數(shù)據(jù)庫(kù)中創(chuàng)建只讀用戶的方法
這篇文章主要介紹了SQL Server 2008 數(shù)據(jù)庫(kù)中創(chuàng)建只讀用戶的方法,為了保護(hù)數(shù)據(jù)庫(kù)的安全,需要給不同的使用者開(kāi)通不同的訪問(wèn)用戶,那么如何簡(jiǎn)單的控制用戶的權(quán)限呢?下面我們就創(chuàng)建一個(gè)只讀用戶,給大家學(xué)習(xí)使用2015-08-08
SQL Server 2008 R2 為用戶權(quán)限分配的操作步驟
這篇文章主要介紹了SQL Server 2008 R2 為用戶權(quán)限分配的操作步驟,有時(shí)候我們不得不設(shè)置一些權(quán)限,例如禁止刪除等,那么就可以參考下面的方法2017-10-10
SQL Server數(shù)據(jù)庫(kù)管理員(DBA)的工作內(nèi)容
DBA的工作目標(biāo)就是確保Microsoft SQL Server 2008系統(tǒng)正常高效地運(yùn)行。DBA的工作也是最繁忙的工作,無(wú)論是性能調(diào)整,還是災(zāi)難恢復(fù),都離不開(kāi)DBA的支持2013-10-10
SQLServer 2008 R2中使用Cross apply統(tǒng)計(jì)最新數(shù)據(jù)和最近數(shù)據(jù)
這篇文章主要介紹了SQLServer 2008中的R2 Cross apply統(tǒng)計(jì)最新數(shù)據(jù)和最近數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2016-02-02

