有表cm 中有ydtel,zd,tel三列,我想让ydtel或zd值有变化时计算tel=ydtel+zd
应如何建触发器,我刚开始学习请老师指教一下!

解决方案 »

  1.   


    create trigger tri_update on cm
    for update
    as
    update cm
    set tel = ydtel+zd
    有主键字段的话可以采用两表更新
    create trigger tri_update on cm
    for update
    as
    update a
    set a.tel = a.ydtel+a.zd
    from cm a join inserted b on a.[主键字段] = b.[字段]
    但不建议用触发器,在更新的时候肯定知道对应ydtel和zd的具体值的,那么tel不是也知道了,一起更新就可以。
      

  2.   

    不需要触发器吧,把tel设计成计算列,公式写为:ydtel+zd??
      

  3.   

    创建触发器,在
    user [数据库名]
    go
    create.....
    on [表名]...
    after [触发条件可选:INSERT,UPDATE,DELETE。]
    begin
    ...
    ..
    [加入你要进行的操作]
    end
      

  4.   

    同意小三的意见,你更新这2个字段任一一个的时候,顺便把tel字段也更新就行了。
      

  5.   


    这个是其它软件中的库,不能在前台同时修改,我的想法是前台ydtel或zd被修改时自动让tel始终等于ydtel+zd,但以不能把tel设计成计算列,因为写后原来的软件就不能保存数据了