【问题标题】:How do I create one trigger that updates DateModified on any table that updates?如何在任何更新的表上创建一个更新 DateModified 的触发器?
【发布时间】:2013-07-04 11:17:24
【问题描述】:

我在每个表上创建一个触发器,以便在行更新时更新 DateModified 列。有没有办法在任何更新的表上创建一个更新 DateModified 的触发器? DateModified 和 DateCreated 在我的数据库中的任何一张表上。

谢谢!!

【问题讨论】:

  • 我永远不会做这样的事情,每笔交易的时间都会增加一倍。根据我以前的经验,这些专栏不会帮助您在审计和版本控制的道路上。如果您想挖掘它,您可以在每个 DML 活动上使用跟踪,然后将这些跟踪应用到其他地方。祝你好运。
  • 谢谢!我目前没有分配流量,所以如果我将交易时间加倍,它不会影响性能。我需要一个今天的解决方案,但将开始研究第二阶段的 DML。任何关于第一阶段触发的建议都值得赞赏。
  • 不要认为有支持这种触发器模板的内置语法。解决方案(或解决方法,取决于您如何看待)可能需要涉及查询表列表的元数据并使用动态 SQL 在游标中生成触发器。

标签: sql-server tsql triggers


【解决方案1】:

最简单的方法,无需手动查询元数据表:

EXEC sp_MSforeachtable 'CREATE TRIGGER ... ON ''?'' AFTER ...'

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多