如何为自动更新创建触发器与SQL Server 2008
修改日期这将是很好,知道如何创建一个触发器,它在我的SQL Server表自动更新modifiedDate
柱:如何为自动更新创建触发器与SQL Server 2008
表TimeEntry
Id (PK)
UserId (FK)
Description
Time
GenDate
ModDate
触发代码:
+ TR_TimeEntry_UpdateModDate()
+ TR_TimeEntry_InsertGenDate()
用于更新ModDate
一个例子是NIC即
在此先感谢!
朱利安
我的方法:
上的
GETDATE()
的值ModDate
列中定义的默认约束 - 这种处理INSERT
情况有
AFTER UPDATE
触发更新ModDate
列
喜欢的东西:
CREATE TRIGGER trg_UpdateTimeEntry
ON dbo.TimeEntry
AFTER UPDATE
AS
UPDATE dbo.TimeEntry
SET ModDate = GETDATE()
WHERE ID IN (SELECT DISTINCT ID FROM Inserted)
根据您的时区要求,还值得考虑'getUtcDate()'。 – Rory
如果有人想知道,像我一样,是否会递归地调用它自己,那么通常会有一个RECURSIVE_TRIGGERS数据库选项,它可以防止像这样的触发器调用它自己。 http://msdn.microsoft.com/en-us/library/ms190739.aspx – Rory
我没有明白。我应该'SET RECURSIVE_TRIGGERS'设置为'ON'或'OFF'来防止这种情况发生? – MarceloBarbosa
是否有是一个触发器? – gbn