2011-04-21 35 views
1

我想在表格中記錄插入日期和更新日期。 在SQL Server 2008中執行此操作的最佳方法是什麼?如何在sql server 2008中爲insert_date和last_modified_date創建和設置字段?

+0

你能更具體?你存儲了哪些表格或數據? SQL通常有一個getdate()來檢索日期和時間。 – Genzume 2011-04-21 17:33:52

+0

最好的辦法是從你的數據訪問代碼(如SubSonic做的)或寫觸發器更新並插入它 – TheVillageIdiot 2011-04-21 17:35:01

+0

http://stackoverflow.com/questions/5744067/sql-server-automatic-update-datetimestamp-field/ 5746102#5746102 – 2011-04-21 19:29:31

回答

3

對於您可以使用下面的觸發器插入日期:

CREATE TRIGGER INSERT_DATE ON TABLE1 
    FOR INSERT 
    AS 

    BEGIN 

     SET NOCOUNT ON 

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

     SET NOCOUNT OFF 

    END 

和更新,你可以使用以下觸發器:

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 
3

對於插入日期列,可以將列的默認值設置爲GETDATE()(或GETUTCDATE())。

對於更新日期,只要有更新,就需要使用觸發器將列設置爲當前日期。

+0

有沒有人有這樣的觸發器的例子? – ScArcher2 2011-04-21 18:32:46

相關問題