【问题标题】:SQL Server 2014 modified date trigger for all tablesSQL Server 2014 修改所有表的日期触发器
【发布时间】:2016-11-08 15:40:46
【问题描述】:

我有大约 15 个表,它们都有一个标题为“modifieddate”的列,我想创建一个触发器,该触发器将在记录更新时更新该日期。有没有办法用一个触发器来做到这一点,还是我需要多个触发器?我也可以使用代码来做到这一点,因为我正在努力解决它。

我已经尝试了代码,但它不起作用。

【问题讨论】:

  • 你试过什么代码?您可以使用触发器更新多个表,但我不确定您应该...
  • 您必须为每个表创建一个触发器,这是没有办法的。您可以在客户端代码中执行此操作,但触发器更好,因为无法绕过它,无论如何它都会发生
  • 为什么需要更新所有表格的修改日期?您始终可以选择加入每个 id 的所有表的最大修改日期,以获得最后修改日期。更新所有表实际上是删除数据,因为您不知道下游,最后实际修改的是哪个表。

标签: sql-server


【解决方案1】:

每个表上的触发器都可以工作,例如:

CREATE TRIGGER [dbo].[Customer_update_trigger]
       ON [dbo].[Customers]
AFTER UPDATE
AS
BEGIN

    SET NOCOUNT ON;

    UPDATE dbo.Customer
    SET ModfiedDate = GETDATE()     

END

但是,您可能希望将逻辑放在应用程序中。例如,如果您查看上面的 GETDATE(),它就不是很灵活。该应用程序将提供更大的灵活性。

【讨论】:

  • 您确定不需要“INNER JOIN 插入 AS i ON customer.ID = i.ID”吗?
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多