MSDE FunClub | 最終更新日 : 2000/08/11 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第4章292p 〜 293p掲載】 |
-- [SQL04_09.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、ストアドプロシージャの内部で引数の値を -- 書き換えても呼び出し元には反映しない誤った例です -- ストアドプロシージャの引数宣言では、OUTPUTキーワードを使います -- -- カレントデータベースを MySampleTest にする USE MySampleTest GO -- ( 件処理されました)のメッセージを抑止する SET NOCOUNT ON GO -- *************** -- 既存の削除 -- *************** IF EXISTS (SELECT name FROM sysobjects WHERE name = '合計計算' AND type = 'P ') BEGIN DROP PROC 合計計算 END GO -- ************************ -- [合計計算]の登録 -- ************************ -- Sum = 1+2+3+4+ ... + End の計算を行います CREATE PROCEDURE 合計計算 @End int = 10 , @Sum int OUTPUT -- OUTPUTキーワードを忘れずに!! AS DECLARE @I INT SELECT @Sum = 0 , @I = 1 WHILE (@I <= @End) BEGIN SELECT @Sum = @Sum + @I SELECT @I = @I + 1 END RETURN @Sum GO -- ******************************** -- プログラムの実行 -- (誤った例です) -- ******************************** DECLARE @Total int SELECT @Total = 0 EXEC 合計計算 10 , @Total PRINT '' PRINT 'これはストアドプロシージャの呼び出し側で誤った例です' PRINT '1+2+3+ ... + 10 = ' + cast(@Total as varchar) PRINT '合計値は正しいですか?' GO