MSDE FunClub 現在までのアクセスカウント数 最終更新日 : 2000/08/11
Microsoft Data Engine FunClub
Since 2000.08.11
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻)
【第5章313p 〜 314p掲載】

-- [SQL05_01.SQL]
--             SQLServer7.0  Transact-SQL言語
--             日本技術ソフト開発  堀川 明
--            http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、
--     [社員view]と[社員人数]ビュー表を作成します
--

-- ( 件処理されました)の表示を抑制する
    SET NOCOUNT ON
GO

-- カレントデータベースを MySampleTest にする
    USE MySampleTest
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


-- *************************************************
--     ビュー表の作成権限が私にありますか?
--  db_owner または db_ddladmin グループに許可される
-- *************************************************
   IF ( (IS_MEMBER('db_owner') <> 1 ) AND (IS_MEMBER('db_ddladmin') <> 1) )
      BEGIN
          RAISERROR( 'CREATE VIEW文の実行権限がありません' , 16 , 127 )
          RETURN
      END
GO

-- *******************************************************************
--  すでに同名のビュー表が存在していたらそれを削除する
--  INFORMATION_SCHEMA 所有者の VIEWS ビュー表を使ってビュー表の
--  存在検査ができます。sysobjectsテーブルを使ってもできます
-- *******************************************************************
    IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
                   WHERE TABLE_NAME = '社員VIEW')
       BEGIN   
              DROP VIEW 社員VIEW
       END

    IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
                   WHERE TABLE_NAME = '社員人数')
       BEGIN   
              DROP VIEW 社員人数
       END
GO

-- ****************************************
--              ビュー表の登録
--    1個のビュー表がバッチ単位を構成する
-- ****************************************
    CREATE VIEW 社員VIEW
    AS
        SELECT CAST( 社員コード AS char(10) ) AS 社員コード ,
               CAST( フリガナ   AS char(24) ) AS フリガナ   ,
               CAST( 氏名       AS char(16) ) AS 氏名
        FROM 社員
GO

    CREATE VIEW 社員人数
    AS
        SELECT COUNT(社員コード) AS  人数
        FROM 社員
GO


-- *************************
--     ビュー表の実行
-- *************************
    PRINT ''
    PRINT '[社員人数]ビュー表'
    SELECT * FROM 社員人数

    PRINT '[社員VIEW]ビュー表'
    SELECT * FROM 社員VIEW WHERE 社員コード BETWEEN 100 AND 200
GO




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

ウィンドウを閉じる


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


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