MSDE FunClub | 最終更新日 : 2000/08/11 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第4章268p 〜 270p掲載】 |
-- [SQL04_02.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、 -- パラメータ付きストアドプロシージャの呼び出し方を勉強します -- AccessのNorthwindデータベースの[社員]テーブルをSQLServer -- へエクスポートしてください -- -- カレントデータベースを MySampleTest にする USE MySampleTest GO -- (何件処理しました のメッセージを抑制する SET NOCOUNT ON GO -- [社員]テーブルの存在チェック IF( ( object_id('社員') IS NULL ) OR OBJECTPROPERTY( object_id('社員') , 'IsTable' ) = 0 ) BEGIN PRINT '****Error!!****' PRINT 'AccessのNorthwindデータベースの[社員]テーブルを使います' PRINT '[社員]テーブルを転送してください' RAISERROR( '[社員]テーブルが見つかりません',16,127) RETURN END GO -- すでに同じ名前のストアドプロシージャが登録済みのときは、削除する IF EXISTS (SELECT name FROM sysobjects WHERE name = '社員検索' AND type = 'P ') BEGIN DROP PROC 社員検索 END IF EXISTS (SELECT name FROM sysobjects WHERE name = '改行出力' AND type = 'P ') BEGIN DROP PROC 改行出力 END GO -- ******************* -- 社員検索の登録 -- ******************* CREATE PROCEDURE 社員検索 @IdStart int = 0 , -- デフォルト値の定義 @IdEnd int = 999 AS -- 検索結果の結果セットを返します SELECT CAST(社員.社員コード AS char(4) ) AS 社員コード, CAST(社員.フリガナ AS char(20) ) AS フリガナ, CAST(社員.氏名 AS char(20) ) AS 氏名 FROM 社員 WHERE 社員.社員コード Between @IdStart AND @IdEnd GO -- ******************* -- 改行出力の登録 -- ******************* CREATE PROCEDURE 改行出力 @LineCount int = 2 -- デフォルト値の定義 AS DECLARE @tmp int SELECT @tmp = 0 -- LineCount行数分の出力 WHILE @tmp < @LineCount BEGIN PRINT '' SELECT @tmp = @tmp + 1 END GO -- **************************** -- ストアドプロシージャの実行 -- **************************** -- 【例1】パラメータを省略して実行します EXEC 社員検索 PRINT 'パラメータ無しで社員検索を実行しました' EXEC 改行出力 @LineCount = 5 GO -- 【例2】パラメータ付き、実行します EXEC 社員検索 @IdStart= 300 PRINT '300 から 999 番までの社員検索表示です' EXEC 改行出力 GO -- 【例3】パラメータ付き、実行します EXEC 社員検索 @IdEnd=299 PRINT '000 から 299 番までの社員検索表示です' EXEC 改行出力 GO -- 【例4】パラメータ付き、実行します EXEC 社員検索 @IdStart=200 , @IdEnd=299 PRINT '200 から 299 番までの社員検索表示です' EXEC 改行出力 GO