--创建
create trigger [triggerName] on [tableName]
for [insert/update/delete]
as
begin
[操作]
rollback transaction
end
go
--修改
-- 1. 修改内容
ALTER TRIGGER [triggerName] ON [tableName]
for [insert/update/delete]
as
begin
[操作]
rollback transaction
end
go
--2. 改名
EXEC sp_rename [原名], [新名]
go
--删除触发器
drop trigger [triggerName]
--查看当前库所有的触发器
select * from Sysobjects WHERE xtype = 'TR'
--查询表的触发器
exec sp_helptrigger '[表名]'
--查询触发器的创建信息
exec sp_help '[触发器名]'
--禁用/启用 触发器
--单个
alter table [tableName] [enable/disable] trigger [triggerName];
--表的
alter table [tableName] [enable/disable] trigger all;
--服务器的
exec sp_msforeachtable 'alter table ? [enable/disable] trigger all'
二、级联操作
--级联插入
--INSERTED 更新后的数据, DELETED 更新前的数据
--例子
create trigger insert_double_trigger on re_person
for insert
as
declare @id int
select @id = id from INSERTED --获取插入的id
insert re_class(p_id) --作为p_id插入到re_class表中
values(@id)
go
--级联修改
create trigger update_double_trigger on re_person
for update
as
begin
declare @id int, @oldId int
select @id = inserted.id, @oldId = deleted.id from inserted, DELETED
update re_class
set p_id = @id
where p_id = @oldId
print('记录已修改')
end