好像是这样,好久没用了update user set upd_time=getdate() from inserted
where inserted.id=user.id

解决方案 »

  1.   

    楼上的我试了你的不行,你的inserted是什么意思?
    to:楼主 你肯定要有条件嘛?没条件表中所有的记录都会更改,如果有条件不就可以根据条件得到修改的id?
      

  2.   

    update user set upd_time=Current_TimeStamp,Set ID = Current_User from inserted where inserted.id = user.idinserted 是由SQL Server自己管理的驻留内存表,它包括受影响的表的全部新行。
      

  3.   

    DEFAULT 定义可以包含常量值、函数、SQL-92 niladic 函数或 NULL。下表显示 niladic 函数及其在执行 INSERT 语句时返回的默认值。 SQL-92 niladic 函数 返回的值 
    CURRENT_TIMESTAMP 当前日期和时间。 
    CURRENT_USER 执行插入操作的用户名。 
    SESSION_USER 执行插入操作的用户名。 
    SYSTEM_USER 执行插入操作的用户名。 
    USER 执行插入操作的用户名。
      

  4.   

    upd_time列设默认值为:CURRENT_TIMESTAMP
      

  5.   

    create ti_user on [user] for insert as
        update [user] 
             set upd_time = getdate() where ...create tu_user on [user] for update as
        update [user] 
             set upd_time = getdate() where ...
      

  6.   

    create trigger ti_user on [user] for insert as
        update [user] 
             set upd_time = getdate() where ...create trigger tu_user on [user] for update as
        update [user] 
             set upd_time = getdate() where ...不好意思,刚才漏写了trigger
      

  7.   

    create trigger trig_tblBank on tblBank For Update
    as 
    Update tblBank Set stamp=getdate() From tblBank a, Inserted b 
    Where a.BankCode=b.BankCode你看這改一下就好了。
      

  8.   

    谢谢各位。特别是lixlin(lsnowl)和 pengdali(大力) ,让大家知道了inserted 的一些相关的知识。
    我做了个触发器:
    declare @updid intselect @updid=user_id from insertedupdate test_user set user_updtime=getdate() where user_id=@updid可以实现我的要求,但总觉得有点漏洞。另外;那个upd_time列设默认值为:CURRENT_TIMESTAMP,我试了,我把upd_time设为不可为空,默认值为:CURRENT_TIMESTAMP,但只能得到一次时间,即刚新添时,得到时间,以后修改时间不变。