2011-04-21 54 views
1

在SQL Server 2008 R2" 我試圖插入SQL Server中的公式,將更新LastUpdatedTimestamp領域的當前值到現在,即getdate()每次更新記錄時。SQL Server的自動更新datetimestamp場

+3

你通過觸發器是什麼意思? – 2011-04-21 12:29:08

+4

這裏真的沒有問題。 – taylonr 2011-04-21 12:40:22

+0

我剛剛發現我必須使用觸發器,我希望我可以使用內置函數。謝謝你們 – markpcasey 2011-04-21 13:35:35

回答

8

你可以對你的DateTime字段的默認約束時會造成插入新行插入當前日期/時間。

從那裏,你需要有一個AFTER UPDATE觸發,將更新日期工作/每行更新一次。

如您所說,您無法使用「公式」來執行此第二項任務(在更新行時更新日期/時間戳記) - 它在SQL Server中無法如此工作。

您需要提供這些方針觸發東西:

CREATE TRIGGER trgYourTableUpdateTimestamp 
    ON dbo.YourTable FOR UPDATE 
AS BEGIN 
    UPDATE 
     dbo.YourTable 
    SET 
     YourTimeStampColumn = GETDATE() 
    FROM 
     Inserted Ins 
    WHERE 
     dbo.YourTable.SomeUniqueId = Ins.SomeUniqueId 
END