| MSDE FunClub |
|
最終更新日 : 2000/08/08 |
|
Microsoft Data Engine FunClub
|
Since 2000.08.08
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) |
|
【第3章256p 〜 257p掲載】 |
-- [SQL03_14.SQL]
-- SQLServer7.0 Transact-SQL言語
-- 日本技術ソフト開発 堀川 明
-- http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、WAITFOR関数の例題です
--
-- ( 件処理されました)の表示を抑制する
SET NOCOUNT ON
GO
-- これから操作する既定のデータベースを MySampleTest にします
USE MySampleTest
GO
-- *************************************
-- 同名のオブジェクトがあれば削除する
-- *************************************
IF( (object_id('OUT') IS NOT NULL) AND
OBJECTPROPERTY(object_id('OUT'),'IsProcedure') = 1 )
BEGIN
DROP PROCEDURE OUT
END
IF( (object_id('NOW') IS NOT NULL) AND
OBJECTPROPERTY(object_id('NOW'),'IsProcedure') = 1 )
BEGIN
DROP PROCEDURE NOW
END
GO
-- ************************************************
-- メッセージの内容を即座にクライアントに出力
-- ************************************************
CREATE PROCEDURE OUT
@msg varchar(80)
AS
RAISERROR( '%s' , 0 , 1 , @msg ) WITH NOWAIT
GO
-- ******************
-- 現在時刻を表示
-- ******************
CREATE PROCEDURE NOW
AS
Declare @st varchar(80)
SELECT @st = '現在時刻 = ' + CONVERT(varchar,GETDATE(),8)
EXECUTE OUT @st
GO
-- ******************
-- プログラム開始
-- ******************
-- 2秒間だけ待機します
EXECUTE OUT '2秒間待機します'
EXECUTE NOW
WAITFOR DELAY '00:00:02'
EXECUTE NOW
PRINT ''
GO
-- ローカル変数で指定された時間だけ待機します
DECLARE @tm datetime,@st varchar(80)
SELECT @tm = '00:00:05' ,
@st = '[' + CONVERT(varchar,@tm,8) + ']時間だけ待機します'
EXECUTE OUT @st
EXECUTE NOW
WAITFOR DELAY @tm
EXECUTE NOW
PRINT ''
GO
-- 現在時刻+10秒待機する
Declare @tm datetime
EXECUTE OUT '10秒間待機します'
EXECUTE NOW
SELECT @tm = GETDATE()
SELECT @tm = DATEADD(second,10,@tm) --10秒加算する
WAITFOR TIME @tm
EXECUTE NOW
GO
-- ストアドプロシージャを削除します
DROP PROCEDURE OUT
DROP PROCEDURE NOW
GO