sql server的触发器怎么写?急~~~!!在线等
假设有这样2个表,
表一:YGZW_YYCL
表一字段:id,carID,carColor
表二:YGZW_YYCL_ZL
表一字段:id,carID,carColor,incTime,incType
表二比表一多了incTime,incType这2个字段而已,
我现在要写一个触发器:当表一发生增删改的时候,分别实现以下的情况:
增:表一增加了一条记录,把这条增加的记录同时新增一条到表二,但是表二的incTime为写进表二的那一刻的时间,incType为0
该:表一修改了某一条记录,同时把修改以后的记录新增一条到表二,表二的incTime为写进表二的那一刻的时间,incType为1
删:表一删除了一条记录,则把被删除的记录同时写进表二,表二的incTime为写进表二的那一刻的时间,incType为2
用一个触发器来实现,怎么写?谁帮我写下,马上要用,分不多了,麻烦高手了!
[解决办法]
这不是一个触发器,是3个
insert 触发器
update 触发器
delete 触发器
我就不写了,帮顶下,后面的继续
[解决办法]
try
- SQL code
create trigger tri_YGZW_YYCL on YGZW_YYCLfor insert,update,deleteasif not exists(select 1 from deleted) --insertbegin insert into YGZW_YYCL_ZL select *,getdate(),0 from insertedendif not exists(select 1 from inserted) -- deletebegin insert into YGZW_YYCL_ZL select *,getdate(),2 from deletedendelse --updatebegin insert into YGZW_YYCL_ZL select *,getdate(),1 from insertedendgo
[解决办法]
- SQL code
create trigger tr_name on YGZW_YYCLfor insert,update,deleteasif update(id) or update(carID) or update(carColor) insert into YGZW_YYCL_ZL select *,getdate(),1 from insertedelsebegin if exists(select 1 from inserted) insert into YGZW_YYCL_ZL select *,getdate(),0 from inserted else insert into YGZW_YYCL_ZL select *,getdate(),2 from deletedend
[解决办法]
if else 嵌套