MSDE FunClub 現在までのアクセスカウント数 最終更新日 : 2000/08/11
Microsoft Data Engine FunClub
Since 2000.08.11
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




技術評論社の書籍ガイドへ
上巻:ISBN4-7741-0965-7

ウィンドウを閉じる


(株)日本技術ソフト開発 責任編集:堀川 明
MSDE FunClubに関するご意見・ご要望等ございましたら、 msdefun@horikawa.ne.jp までご連絡下さい。
HOME: http://www.horikawa.ne.jp/msde/


MSDE FunClubの運営は、マイクロソフト社とは一切の関係はありません