| MSDE FunClub |
|
最終更新日 : 2000/08/11 |
|
Microsoft Data Engine FunClub
|
Since 2000.08.11
|
|
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