表Users的结构:
ID  int 自动编号
Name char 20
Sex int
UDate Datetime 现在想编写该表的修改触发器,当更新Name或者Sex(除UDate字段外)字段时,把UDate设置同时更新为当前时间
CREATE TRIGGER UserAutoUpDate ON [dbo].[Users] 
FOR UPDATE
AS
Update Users set UDate=GetDate() where ???此处该怎么写?才能完成只更新被修改的记录的UDate字段的值,而且UDate如果被用户修改,该触发器不响应。
谢谢

解决方案 »

  1.   

    CREATE TRIGGER UserAutoUpDate ON [dbo].[Users] 
    FOR UPDATE
    AS
    IF UPDATE (Name) or UPDATE(Sex)
    BEGIN
     Update Users set UDate=GetDate() where ???
    END
      

  2.   

    谢谢
    补充完整。。
    CREATE TRIGGER UserAutoUpDate ON [dbo].[Users]FOR UPDATEASdeclarea @id intselect @id=id from inserted
    IF UPDATE (Name) or UPDATE(Sex)
    BEGIN
      Update Users set UDate=GetDate() where id=@id
    END
      

  3.   

    if update(name)
            select @id=id from inserted
            Update Users set UDate=GetDate() where id=@id
    inserted 表示更新的那条数据。