2010-05-12 66 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}