下面这个触发器是错误的,请问怎么改
create trigger gxzt on cardetail
for update
as
  insert jilu_table(carid,jingdu,weidu,tras_time) 
  select carid,jingdu,weidu,tras_time from deleted
                                      ~~~~~~~~~~~~关键是这错,
                                                         表cardetail中是更新数据
                                                          而不是删除       

解决方案 »

  1.   

    create trigger gxzt on cardetail
    for update
    as
      insert jilu_table(carid,jingdu,weidu,tras_time)
      select carid,jingdu,weidu,tras_time from inserted 
      

  2.   

    数据库用的是sql server 2008
      

  3.   

    deleted是更新前的數據,inserted是更新後的數據,看2樓的.
      

  4.   

     
    不怎么对,这儿是update 而不是insert
    当对表cardetail中某条记录的某个字段更新的时候,
    先把这条记录中的某些字段(carid,jingdu,weidu,tras_time)转存到表jilu_table中去,
      

  5.   


    目的就是要把更新前的数据转存到表jilu_table中去
      

  6.   


    更新同时存在inserted和deleted,inserted里的是更新后的数据,deleted里的是更新前的数据
      

  7.   

    update的操作就是先delete,后insert,所以楼主应该用inserted
      

  8.   

    --看来楼主对触发器还不是很了解。
    --触发器里有2个虚拟表,
    --一个是inserted,放的是本次insert操作新增的数据或update更新后的数据。
    --一个是deleted, 放的是本次delete操作删除的数据或update操作更新前的数据。
    如果你要把cardetail更新前的数据放到jilu_table,你的触发器是没问题的。