表一:ID LIULAN1 LIULAN2要求:插入LIULAN1的数据也同插入到LIULAN2中,但修改LIULAN2的数据后LIULAN2不等于LIULAN1。
create trigger tri_c
on lanlan
for insert,update
as if @@rowcount=0 return
 
if exists(select 1 from lanlan)
  update lanlan set liulan2=b.liulan1 from lanlan a,inserted b 
  where a.id=b.id
go
这个触发器只能实现插入LIULAN1的数据也同时插入到LIULAN2中,但修改LIULAN2的数据后LIULAN1的值也改变,我想要的结果是LIULAN2的数据改变时LIULAN1不变。
以前问过这个问题,但要求现在有一些变化。想让两个字段在一个表中实现。大家再帮看看,谢谢啊。

解决方案 »

  1.   

    這個意思??create trigger tri_c
    on lanlan
    for insert
    as if @@rowcount=0 return
     
      update lanlan set liulan2=b.liulan1 from lanlan a,inserted b where a.id=b.id
    go
      

  2.   

    Orcreate trigger tri_c on lanlan
    Instead Of Insert
    As 
    Insert lanlan Select ID,liulan1,liulan1 From inserted
    go
      

  3.   

    是这个个意思,谢谢paoluo(一天到晚游泳的鱼)!
    再问PAOLUO下,为什么加if exists(select 1 from lanlan)会实现不了呢?
      

  4.   

    应该不是if exists(select 1 from lanlan)这个的问题应该是create trigger tri_c
    on lanlan
    for insert,update --原来的触发器是在update和insert时都触发的。
    as 
      

  5.   

    對,我的代碼主要是去掉了update, 你的需求是不需要update觸發的。