| MSDE FunClub |
|
最終更新日 : 2000/08/17 |
|
Microsoft Data Engine FunClub
|
Since 2000.08.17
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) |
|
【第6章360p 〜 362p掲載】 |
-- [SQL06_04.SQL]
-- SQLServer7.0 Transact-SQL言語
-- 日本技術ソフト開発 堀川 明
-- http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、
-- トリガ内部でROLLBACK TRANSACTION を実行するときは
-- 必ずRAISERROR命令を実行してメッセージを出力してください
--
-- カレントデータベースを MySampleTest にする
USE MySampleTest
GO
-- (件処理されました)のメッセージを抑止する
SET NOCOUNT ON
GO
-- *************************************************
-- 見本テーブルの作成
-- *************************************************
-- 既存テーブルが存在したら削除します
IF( (object_id('T_MSGOFF') IS NOT NULL) AND
OBJECTPROPERTY( object_id('T_MSGOFF'),'ISTABLE') = 1 )
BEGIN
PRINT 'T_MSGOFF テーブルが存在したので削除しました'
DROP TABLE T_MSGOFF
END
GO
-- 新しくテーブルを作成する
CREATE TABLE T_MSGOFF (
ID int CONSTRAINT PK_T_MSGOFF PRIMARY KEY ,
DATA varchar(20)
)
GO
-- 既存テーブルが存在したら削除します
IF( (object_id('T_MSGON') IS NOT NULL) AND
OBJECTPROPERTY( object_id('T_MSGON'),'ISTABLE') = 1 )
BEGIN
PRINT 'T_MSGON テーブルが存在したので削除しました'
DROP TABLE T_MSGON
END
GO
-- 新しくテーブルを作成する
CREATE TABLE T_MSGON (
ID int CONSTRAINT PK_T_MSGON PRIMARY KEY ,
DATA varchar(20)
)
GO
-- *************************************************
-- トリガの登録
-- *************************************************
-- ///////////////////
-- メッセージ出力なし
-- ///////////////////
CREATE TRIGGER TR_MSGOFF -- トリガの名前
ON T_MSGOFF -- トリガを組み込むテーブル
-----------
FOR UPDATE,INSERT
-----------
AS
ROLLBACK TRANSACTION
GO
-- ///////////////////
-- メッセージ出力有り
-- ///////////////////
CREATE TRIGGER TR_MSGON -- トリガの名前
ON T_MSGON -- トリガを組み込むテーブル
-----------
FOR UPDATE,INSERT
-----------
AS
ROLLBACK TRANSACTION
RAISERROR('エラー発生!! 入力操作を中止します', 16,1)
GO