现有一表,有3个字段. V, E, U
V int(表示天数)
E datetime
U datetime就是要在U改变或添加的时候,把E设置成 E = U + V这个触发器怎么写? 谢谢!

解决方案 »

  1.   

    create tigger f on tb
    for insert,update 
    as
    begin
    if update tb(u)
    update tb  set e=u+v
    end
      

  2.   

    姐姐
    如果用if update()
    那添加時候這個觸發器就不起作用了
      

  3.   


    ---使用计算列
    create table tb(u datetime,v int,e as dateadd(dd,v,u))
    go
    insert into tb(u,v) select '2010-04-03',3
    go
    select * from tb
    go--结果:
    u                       v           e
    ----------------------- ----------- -----------------------
    2010-04-03 00:00:00.000 3           2010-04-06 00:00:00.000
      

  4.   

    在公式裏輸入
    (dateadd(day,[v],[u]))
      

  5.   

    create table tb (
    V int,
    E datetime,
    U datetime
    ) create trigger f on tb
    for insert,update 
    as
    begin
      if update(U) 
        update tb  set e=u+v   
    endINSERT  TB (V,E,U) 
    SELECT 5,'2010-03-05','2010-04-05'
      

  6.   

    if update tb(u)
    update tb set e=u+v我想问下这样写会不会把整个表都更新一下,还是只更新这条记录?
      

  7.   


    这样设置的话,在设计器里这个字段好像就没有数据类型了。用ASP.NET 读取的时候按datetime来取会不会出错?
      

  8.   

    create trigger tri_table1
    on table1
    for insert,update
    as
    begin
    if update(U)
    update table1 set E=dateadd(dd,V,U)
    where ...end
      

  9.   


    create tigger t_ri on tb for update,insert
    as
    begin
    update tb set e=u+v
    end
      

  10.   

    update t set t.E=dateadd(dd,i.V,i.U)
    from inserted i ,table1 t
    where i.id=t.id