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