2010-05-12 65 views
0

我正在尋找一個良好的更新觸發器更新表的ModifyDate字段的示例。sql - 更新觸發器來填充ModifyDate字段

這將是很好的處理更新命令更新表中的多個記錄的情況。

有沒有一個很好的模板或教程呢?

+0

爲了什麼數據庫?你真的需要一個觸發器 - 你可以在INSERT語句本身中調用GETDATE或其他適當的東西來填充modifydate列。 – 2010-05-12 22:24:24

回答

1

這裏的剪切和粘貼(並重新命名,以保護無辜者),一個我以前寫的很長一段時間(也就是它的工作原理):

CREATE TRIGGER dbo.TR_iu_MyTable__LastUpdated 
on dbo.MyTable 
after insert, update 

AS 

    SET NOCOUNT on 

    UPDATE dbo.MyTable 
    set LastUpdated = getdate() 
    where MyTableId in (select MyTableId from inserted) 
1
UPDATE {tablename} 
SET ModifyDate = GETDATE() 
FROM inserted 
WHERE {tablename}.{primarykey} = inserted.{primarykey} 

放置在標記爲INSERT和UPDATE操作的觸發器中將解決您的問題。

你也可以做類似的東西放置在標籤僅在插入動作觸發一個CREATEDATE

UPDATE {tablename} 
SET CreateDate = GETDATE() 
FROM inserted 
WHERE {tablename}.{primarykey} = inserted.{primarykey}