MSDE FunClub | 最終更新日 : 2000/08/11 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第4章305p 〜 307p掲載】 |
-- [SQL04_13.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、ストアドプロシージャのグループ化 -- の例題です -- -- カレントデータベースを MySampleTest にする USE MySampleTest GO -- ( 件処理されました)のメッセージを抑止する SET NOCOUNT ON GO -- すでに同じ名前のストアドプロシージャが登録済みのときは、削除する -- グループ全体を一括削除する IF EXISTS (SELECT name FROM sysobjects WHERE name = 'ProcGroup' AND type = 'P ') BEGIN DROP PROC ProcGroup END GO -- ストアドプロシージャを登録します(1番) CREATE PROCEDURE ProcGroup;1 @InOut_int int OUTPUT , @InOut_str varchar(80) OUTPUT AS PRINT '入力された値 InOut_int = ' + LTRIM(STR(@InOut_int)) PRINT '入力された値 InOut_str = ' + @InOut_str -- 引数の値を書き換えます SELECT @InOut_int = @InOut_int * 2 SELECT @InOut_str = @InOut_str + @InOut_str RETURN GO -- ストアドプロシージャを登録します(2番) CREATE PROCEDURE ProcGroup;2 @int_data int , @str_data varchar(160) AS -- 変数の値の出力 PRINT '呼び出し後の値 int_data = ' + LTRIM(STR(@int_data)) PRINT '呼び出し後の値 str_data = ' + @str_data GO -- ストアドプロシージャを登録します(3番) CREATE PROCEDURE ProcGroup;3 @LineCount int = 2 AS DECLARE @tmp int SELECT @tmp = 0 -- LineCount行数分の出力 WHILE @tmp < @LineCount BEGIN PRINT '' SELECT @tmp = @tmp + 1 END GO -- *********************** -- グループ化の例題 -- *********************** DECLARE @int_data int , @str_data varchar(160) -- 初期値を設定します SELECT @int_data = 100 , @str_data = 'SQLServer 7.0 ストアドプログラミング:' -- ストアドプロシージャを呼び出します EXEC ProcGroup;1 @int_data , @str_data EXEC ProcGroup;2 @int_data , @str_data PRINT '呼び出し時に OUTPUT キーワードを忘れました。結果は?' EXEC ProcGroup;3 -- ストアドプロシージャを呼び出します EXEC ProcGroup;1 @int_data OUTPUT , @str_data OUTPUT EXEC ProcGroup;2 @int_data , @str_data PRINT '呼び出し時に OUTPUT キーワードを付けました。結果は?' EXEC ProcGroup;3 GO