*关于触发器
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。
触发器实例:
1.insert 触发器示例
create trigger tri_insert
on student
for insert
as
declare @student_id char(10)
select @student_id=s.student_id from student s inner join inserted i on s.student_id=i.student_id
if
@student_id='0000000001'
begin
raiserror('不能插入1的学号!',16,8)
rollback tran
end
go
2.update触发器示例
create trigger tri_update
on student
for update
as
if update(student_id)
begin
raiserror('学号不能修改!',16,8)
rollback tran
end
go
3.delete触发器示例
create trigger tri_delete
on student
for delete
as
declare @student_id varchar(10)
select @student_id=student_id from deleted
if
@student_id='admin'
begin
raiserror('错误',16,8)
rollback tran
end
4.insert触发器,如果有数据插入表a,则数据表b也插入值
create trigger test_insert
on a
after insert
as
begin
insert into b(id,name) values('1',convert(char(20),getdate(),120))
end