create table table1
(
user_id int primary key identity(1,1),
user_name varchar(3) not null
)
下面就是创建一个简单的after触发器:
create trigger trigMessageList
on table1
after insert,update
as raiserror('数据一致性验证',16,1)
此时如果我们手动打开table1,输入一条,根本就插入不了,我们只能写一条如下的SQL语句插入一条数据
insert into table1(user_name)values('23')
结果数据是插入成功了,但是会出显如下图所示的提示:
下面我再创建一个稍微有点复杂的after触发器:
--该触发器作用是:如果向table1中插入数据时,
--先检查要向table1插入的这条的USER_ID是否USERS(我创建的另一个表)表中的USER_ID字段中有,如果不存在则不允许插入
create trigger trigInsertedMessages
on table1
after insert
as
if exists (select * from inserted a where a.user_id not in (select USER_ID from USERS))
begin
raiserror('数据一致性验证',16,1)
rollback transaction
end
--它的作用是:防止数据库Test(我创建的一个实验数据库)中的任一表被修改或删除
create trigger trigDB
on database
for drop_table,alter_table
as
print '你一定要禁用触发器“trigDB"才能删除或修改这个数据库的表'
rollback
删除触发器:
drop trigger trigDB
ON DATABASE
一定要记得加上ON DATABASE这条,否则就删除不了。
最后再来条开启和禁用触发器的语句:
disable trigger trigDB on database --禁用触发器
enable trigger trigDB on database --开启触发器
简单记录下我生活过后日子,嘿嘿!朋友们,如果你们公司招骋.net程序员或web开发的请帮我推荐下可以吗?上周公司解散了,一直闲散在家,这日子实在不好过……