首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server的触发器如何写?

2012-06-15 
sql server的触发器怎么写?急~~~!!在线等假设有这样2个表,表一:YGZW_YYCL表一字段:id,carID,carColor表二:

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 嵌套

热点排行