一个表添加数据,另外一个表也跟着添加的触发器:数据库
create trigger [dbo].[adddate] on [dbo].[person] for insert
as declare @name varchar(20)
declare @sex varchar(20)
declare @Pid varchar(20)
select @name=name,@sex=sex,@Pid=Pid from inserted
insert into person_C (name,sex,Pid) values(@name,@sex,@Pid)app
一个表删除、另外一个表也删除的触发器:.net
Create trigger [dbo].[deletedata] on [dbo].[person] for delete
as declare @name varchar(20)
select @name=name from deleted
delete from person_C where name=@name
print '删除成功'code
一个表修改,另外一个也修改的触发器:get
create trigger updatedate on person for update
as declare @name varchar(20)
declare @sex varchar(20)
declare @Pid varchar(20)
select @name=name from deleted ---更新前的数据[select @name=name from inserted---更新后的数据]
update person_C set sex=@sex,Pid=@Pid where name=@nameclass
当表的数据达到什么条件时 抛出异常阻止插入object
ALTER trigger [dbo].[shutdonwadd] on [dbo].[h_swarehouse] for INSERT
as
declare @prtime varchar(50)
declare @cu_no varchar(20)
declare @serialNumber int
select @prtime=prtime,@cu_no=cu_no,@serialNumber=serialNumber from INSERTED
if ((@prtime='2016/04/14' or @prtime='2016-04-14' or @prtime='2016/4/14')and @cu_no='HD' and @serialNumber>895)
BEGIN
RAISERROR('流水号已大于895',16,1)
ROLLBACK
RETURN
END
date
查询数据库全部的触发器:select name from sysobjects where xtype='TR' --全部触发器名称select
查询有触发器的表
im
select name 表格名称 from sysobjects where xtype='U' AND id in(select parent_obj from sysobjects where xtype='TR')------查询有触发器的表 select name 表格名称 from sysobjects where xtype='U' AND id NOT in(select parent_obj from sysobjects where xtype='TR')------查询没有触发器的表 有多少触发器用下面的就行: select a.name 数据表名,sysobjects.name as 触发器名,sysobjects.crdate as 建立时间 from sysobjects left join (select *from sysobjects where xtype='U')as a on sysobjects.parent_obj=a.id where sysobjects.xtype='TR'