SET @RESPON_TIME=DATEDIFF(HOUR,CONVERT(DATETIME,@COM_DT)+CONVERT(DATETIME,@COM_TM),GETDATE())加update tablename set column = @RESPON_TIME where ...

解决方案 »

  1.   

    考虑每次插入多行情况,应该这么写:
    create trigger tri_SERVICES_Insert
    on SERVICES
    for insert
    as
    update SERVICES 
     set RESPON_TIME=DATEDIFF(HOUR,CONVERT(DATETIME,c.COM_DT+' '+C.COM_TM),GETDATE())
    FROM INSERTED I,COMPLAINT C,SERVICES S
    WHERE I.COM_ID=C.COM_ID
    and  s.COM_ID=C.COM_ID
    go
      

  2.   

    谢谢各位指点,在下刚刚学写TRIGGER,还有很多不懂得地方。
    按说我要实现的功能也不是很复杂,如果在DB2中,写BEFORE INSERT,很方便就实现了,为什么在SQL SERVER中要这么复杂呢?上面这段TRIGGER,各位有没有更简单的写法呢?(不知道为什么发帖时,CSDN速度奇慢,不小心按了刷新,结果发了同样的两贴。不论在那一贴回答,同样放分!)