MSDE FunClub | 最終更新日 : 2000/08/11 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第4章288p 〜 289p掲載】 |
-- [SQL04_07.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、ストアドプロシージャのRETURN命令の使い方 -- を勉強します。 -- AccessのNorthwindデータベースの[社員]テーブルをSQLServer -- へエクスポートしてください -- -- カレントデータベースを MySampleTest にする USE MySampleTest GO -- ( 件処理されました)のメッセージを抑止する SET NOCOUNT ON 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 , @Mode int = 0 AS DECLARE @Count int IF( @Mode = 1 ) -- 1の時は検索結果の結果セットを返します BEGIN select 社員.社員コード, CAST(社員.フリガナ AS char(20)) AS フリガナ , CAST(社員.氏名 AS char(20)) AS 氏名 from 社員 where 社員.社員コード Between @IdStart AND @IdEnd RETURN 0 END ELSE -- それ以外は、検索結果のレコード数を返す BEGIN SELECT @Count = ( select count(社員.社員コード) from 社員 where 社員.社員コード Between @IdStart AND @IdEnd ) RETURN @Count END GO -- ****************** -- 件数表示の登録 -- ****************** CREATE PROCEDURE 件数表示 @info_Param varchar(80) = '' , @Cnt_Param int = 0 AS IF( @Cnt_Param <> 0 ) BEGIN PRINT @info_Param + LTRIM(STR(@Cnt_Param)) + '件でした' END RETURN GO -- ****************** -- プログラム開始 -- ****************** DECLARE @RetValue int EXEC @RetValue = 社員検索 -- デフォルト検索時のレコード件数を取得 EXEC 社員検索 @Mode = 1 -- 検索の実行(リストが表示されます) EXEC 件数表示 'デフォルトレコード検索件数:' , @RetValue EXEC @RetValue = 社員検索 @IdStart=200 , @IdEnd=299 EXEC 社員検索 @Mode = 1 , @IdStart=200 , @IdEnd=299 EXEC 件数表示 '200 から 299 までのレコード検索件数:' , @RetValue GO