2011-06-09 66 views
2

我想插入當前日期時間插入或更新新行。 只要插入一行,getdate()就會給出日期時間。但在行更新時它不會自行更新。 有沒有辦法做到這一點?表更新日期時間自動更新:MS SQL08

編輯:我不想使用觸發器。

Field Structure

+1

你可能要考慮['SYSDATETIME()'](http://msdn.microsoft.com/en-us/library/bb630353。 aspx)而不是'getdate()' - 它將使用更多的可用精度。 – 2011-06-09 14:05:42

回答

4

存儲過程可以幫助你的話,但隨後一個特設的更新操作會導致數據不一致。

+1

是的,觸發器幾乎是你可以保證這種功能的唯一方法。除非有人丟棄,禁用或改變觸發器,當然。 – 2011-06-09 14:06:47

+0

我不想使用觸發器。還有其他的選擇嗎? – 2011-06-09 14:49:10

6

這是你需要更新觸發:

CREATE TRIGGER Update ON TABLE1 
FOR UPDATE 
AS 

BEGIN 

SET NOCOUNT ON 

    UPDATE TABLE1 
    SET UpdatedOn = GETDATE() 
     FROM TABLE1 A   
    INNER JOIN Inserted INS ON (A.Id = INS.Id) 

    SET NOCOUNT OFF 

    END 
+0

該查詢不會爲我運行,因爲'更新'是一個關鍵字。將其更改爲「UpdateTrigger」,並且它完美運行。謝謝。 – RyanfaeScotland 2015-03-25 09:59:31