【正文】
XISTS(SELECT name FROM sysobjects WHERE name=39。reader_d39。 AND type=39。TR39。) DROP TRIGGER reader_d GO CREATE TRIGGER reader_d ON Reader FOR DELETE AS DECLARE @data_yj int SELECT @data_yj=Lendnum FROM deleted IF @data_yj0 BEGIN PRINT 39。該讀者不能刪除!還有39。+convert(char(2),@data_yj)+39。本書沒還。 ROLLBACK END ELSE PRINT 39。該讀者已被刪除! 39。 GO 應用: USE Library GO DELETE Reader WHERE RID=39。202121611939。 數(shù)據庫原理及應用 DDL觸發(fā)器 語法形式: CREATE TRIGGER trigger_name ON {ALL SERVER|DATABASE}[WITH ddl_trigger_option [ ,...n ]] {FOR|AFTER} {event_type|event_group}[,...n] AS {sql_statement[。] [...n]|EXTERNAL NAME method specifier[。]} 數(shù)據庫原理及應用 DDL觸發(fā)器 ? 例 :使用 DDL觸發(fā)器來防止數(shù)據庫中的任一表被修改或刪除。 CREATE TRIGGER safety ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS PRINT 39。You must disable Trigger safety to drop or alter tables!39。 ROLLBACK 數(shù)據庫原理及應用 DDL觸發(fā)器 例 :使用 DDL 觸發(fā)器來防止在數(shù)據庫中創(chuàng)建表。 CREATE TRIGGER safety ON DATABASE FOR CREATE_TABLE AS PRINT 39。CREATE TABLE Issued.39。 SELECT EVENTDATA().value(39。(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]39。,39。nvarchar(max)39。) RAISERROR (39。New tables cannot be created in this database.39。, 16, 1) ROLLBACK 數(shù)據庫原理及應用 ? ALTER TRIGGER trigger_name 數(shù)據庫原理及應用 ? DROP TRIGGER trigger_name 數(shù)據庫原理及應用 ? sp_helptext trigger_name ? sp_helptrigger table_name