SQL Server 2008中SQL增強之WaitFor命令詳解
作者:邀月 
  本文我們主要介紹了SQL Server 2008中SQL增強之WaitFor命令的使用,并給出了詳細的代碼示例加以說明,希望能夠?qū)δ兴鶐椭?/div>  
 
   
  上次我們介紹了:SQL Server 2008中SQL增強之Merge命令詳解,本文我們主要介紹一下SQL Server 2008中SQL增強之WaitFor命令的使用,接下來我們就開始介紹。
在SQL Server 2005以上版本中,在一個增強的WaitFor命令,其作用可以和一個job相當(dāng)。但使用更加簡捷。
看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) 執(zhí)行存儲過程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
 
以下示例在兩小時的延遲后執(zhí)行存儲過程。注意:Delay最多不超過24小時
- BEGIN
 - WAITFOR DELAY '02:00';
 - EXECUTE sp_helpdb;
 - END;
 - GO
 
以下示例顯示如何對 WAITFOR DELAY 選項使用局部變量。將創(chuàng)建一個存儲過程,該過程將等待可變的時間段,然后將經(jīng)過的小時、分鐘和秒數(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)你沒有權(quán)限指定job時,可以考慮用WaitFor語句。
關(guān)于SQL Server 2008中SQL增強之WaitFor命令的相關(guān)知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
- SQL Server多表查詢優(yōu)化方案總結(jié)
 - SQL Server數(shù)據(jù)庫ISNULL函數(shù)的應(yīng)用實例
 - SQL Server數(shù)據(jù)庫DATEPART的語法及使用實例
 - SQL Server根據(jù)子節(jié)點查詢所有父節(jié)點的代碼示例
 - SQL Server臟讀方式數(shù)據(jù)提取之NOLOCK和READPAST
 
 
責(zé)任編輯:趙鵬 
                    來源:
                    博客園
  
 
相關(guān)推薦
 
 
 
 














 
 
 