T-SQL触发器更新

SF *_*per 14 t-sql triggers

我有一个包含3个字段的表[ID,Name,LastUpdated].
LastUpdated的默认值为"GetDate(),因此在添加新记录时会自动填充.

当我在TABLE上运行UPDATE时,我希望将此字段重置为当前的GetDate().

CREATE TRIGGER dbo.Table1_Updated
   ON  dbo.Table1
   AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;
    UPDATE dbo.Table1 SET LastUpdated = GETDATE()
END
GO
Run Code Online (Sandbox Code Playgroud)

但是因为我没有WHERE子句,所有记录都会更新.

问题:
我在哪里可以获得UPDATE触发器上更新记录的ID值?

我是否正在更新Trigger中的表字段,重新调用一个新的Trigger事件(等等)?

dan*_*era 25

从'INSERTED'开始,表INSERTED对INSERT,UPDATE触发器都是通用的.

CREATE TRIGGER dbo.Table1_Updated
ON dbo.Table1
FOR INSERT, UPDATE /* Fire this trigger when a row is INSERTed or UPDATEd */
AS BEGIN
  UPDATE dbo.Table1 SET dbo.Table1.LastUpdated = GETDATE()
  FROM INSERTED
  WHERE inserted.id=Table1.id
END
Run Code Online (Sandbox Code Playgroud)