解决方案 »
- sql server 2000数据库选项的作用是什么?
- SQL问题
- SQL语句理解SELECT a.*, b.Key FROM SystemArtClass AS b INNER JOIN SystemArtClass AS a ON a.c_parent = b.id where b.key='NavMenu' orde
- 分组统计
- SQL Server问题求助,如何部分选择查询结果!!(100分奖励!!)
- 这个错误是怎么产生的"[OLE/DB provider returned message: 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。]"
- sql问题
- sqlserver6.5中为什么数据库每3个小时左右就死了?
- 关于SQLSEVER自动增长的实现问题!
- 难题:SQLSERVER应用开发级高手请进来看看(vb+dts)
- 关于数据库的。求大神指导
- 关于并发的问题
on feedetail
for insert,delete,update
asinsert into feedetail_old
select *,getdate()
from feedetail f
where not exists(select 1 from deleted d where d.id = f.id) and
not exists(select 1 from inserted i where i.id = f.id)
create trigger dbo.feedetail_xx
on feedetail
for insert,delete,update
asif exists(select 1 from inserted ) and exists(select 1 from deleted)
insert into feedetail_old
select *,getdate()
from feedetail f
where not exists(select 1 from inserted d where d.id = f.id)
union all
union all
select *,GETDATE() from deleted
else if exists(select 1 from inserted)
insert into feedetail_old
select *,getdate()
from feedetail f
where not exists(select 1 from deleted d where d.id = f.id)
else
insert into feedetail_old
select *,getdate()
from feedetail
union all
select *,GETDATE() from deleted
写触发器时,你要知道底层是2个表:inserted、deleted。这2个表可以任你读取任意的列(字段)。
还有一个函数:updated,判断某个列(字段)的值是否被修改。
有了上述知识,实现你的功能应当不难。
create trigger dbo.feedetail_xx
on feedetail
for insert,delete,update
asif exists(select 1 from inserted ) and exists(select 1 from deleted)
insert into feedetail_old
select *,GETDATE() from deleted
得用instead of触发器
create trigger t_dbo.feedetail_xx
on feedetail
for insert,delete,update
as
if not exists(select 1 from deleted )
insert into feedetail_old
select *,getdate()
from inserted
else
insert into feedetail_old
select *,getdate()
from deleted
on feedetail
for insert,delete,update
as
begin
if not exists(select 1 from deleted ) --插入时进行操作
insert into feedetail_old
select *,getdate()
from inserted
else if not exists(select 1 from inserted ) --删除时进行操作
insert into feedetail_old
select *,getdate()
from deleted
else if update(价格)
insert into feedetail_old
select *,getdate()
from deleted