| MSDE FunClub |
|
最終更新日 : 2000/08/22 |
|
Microsoft Data Engine FunClub
|
Since 2000.08.22
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(下巻) |
|
【第12章138p 〜 140p掲載】 |
-- [SQL12_05.SQL]
-- SQLServer7.0 Transact-SQL言語
-- 日本技術ソフト開発 堀川 明
-- http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、
-- 参照整合性のあるテーブルを作成します
-- SQL12_02プログラムと同じですがアプリケーションロール
-- を適用します
--
-- カレントデータベースを MySampleTest にする
USE MySampleTest
GO
-- (件処理されました)のメッセージを抑止する
SET NOCOUNT ON
GO
-- *****************************************
-- 私は user01 または user02 ユーザですか?
-- *****************************************
DECLARE @user_nm varchar(20)
SELECT @user_nm = USER_NAME() -- データベースユーザ名
IF (@user_nm <> 'user01') AND (@user_nm <> 'user02')
BEGIN
RAISERROR('あなたは ''%s'' ユーザです。user01 02で実行してください',
16 , 127 , @user_nm )
RETURN
END
PRINT 'アプリケーションロールを実行する前です'
PRINT '私のユーザ名 = ' + @user_nm
GO
-- *****************************************
-- アプリケーションロールの適用を行なう
-- *****************************************
sp_setapprole @rolename = 'DRIDenyAPP' ,
@password = 'HIRAKEGOMA'
GO
PRINT ''
PRINT 'アプリケーションロールを実行した後です'
PRINT '私のユーザ名 = ' + USER_NAME()
GO
-- **********************************
-- テーブルを新規に作成します
-- **********************************
IF( (object_id('DRITest') IS NOT NULL ) AND
OBJECTPROPERTY( object_id('DRITest'),'ISTABLE') = 1 )
BEGIN
-- 存在しているテーブルを削除する
DROP TABLE DRITest
END
GO
-- dboユーザの作成したテーブルに対して、参照整合性の
-- 宣言できるか?
CREATE TABLE DRITest (
ID2 INT CONSTRAINT PK_DRITest Primary Key ,
ID INT , -- 外部キーとして宣言を行いたい
DAT CHAR(10) ,
-- 参照整合性の宣言を行なう
CONSTRAINT FK_DRITest FOREIGN KEY( ID ) REFERENCES dbo.DRIGrantCheck ( ID )
)
GO
PRINT '終了しました'
GO