我想为一个表创建一个触发器,当用户向这个表向这个表添加、修改和删除数据时,触发器能够自动的对另一个表作想同的操作。现在遇到一个问题,怎么判断用户是添加还是修改或是删除呢?求高手解答。
解决方案 »
- 为何【用友、金蝶】的erp系统的数据库中,不设表间的关联和约束呢?
- 简单语句请教!!!
- select语句问题~
- 这个SQL怎么写,在线等
- sql server 2000(sp4) 自动停止了,是怎么会事情呀,几乎过几天会遇到一次。
- 高手来分析下这里的on update/delete restrict为什么报错
- 请帮个忙,2台电脑用花生壳连接进销存软件,怎么设置?
- 表的行和列转换问题
- 请问以下语句怎么写?
- 请问下,这2条语名有什么区别?
- SQL Server 惊天大陷井!!! 大家看看你有未曾中招! 也烦高手进来支招!!!
- 我们公司的SQL在执行数据的时候总是堵塞,到底如何解决这个问题啊,救命啊!!
--插入
else if not exists (select 1 from inserted)
--删除
else
--更新
on tabA
for insert,delete,update
as--删除被删除的或者被修改的
delete tabB
from tabB b,deleted d
where b.PK=d.PK--插入新插入的或者修改后的
inser tabB
select * from insertedgo--是不是这样简单点
create trigger tr_copy
on tabA
for insert,delete,update
as--删除
delete b
from tabB b inner join deleted d on b.PK=d.PK
left join inserted i on d.PK=i.PK
where i.PK is null--更新
update b
set col1=i.col1,col2=i.col2,....
from tabB b inner join inserted i on b.PK=i.PK
inner join deleted d on i.PK=d.PK
--插入
inser tabB
select i.* from inserted i left join deleted d on i.PK=d.PK
where d.pk is null
go--是不是这样简单点