SQL Server 自动更新日期时间戳字段

发布于 2024-11-03 06:33:44 字数 141 浏览 1 评论 0原文

在 SQL Server 2008 R2 中,我尝试在 SQL Server 中插入一个公式,该公式将在每次记录时将 LastUpdatedTimestamp 字段中的当前值更新为现在,即 getdate()已更新。

In SQL Server 2008 R2" I am trying to insert a formula in SQL Server that will update the current value in the LastUpdatedTimestamp field to now i.e. getdate() every time the record is updated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

卷耳 2024-11-10 06:33:44

您可以对 DateTime 字段设置默认约束,这将导致在插入新行时插入当前日期/时间。

从那时起,您需要使用 AFTER UPDATE 触发器,该触发器将在每次更新行时更新您的日期/时间列。

您不能像您所说的那样使用“公式”来完成第二个任务(在更新行时更新日期/时间戳) - 它在 SQL Server 中不起作用。

您需要提供一个触发器:

CREATE TRIGGER trgYourTableUpdateTimestamp
  ON dbo.YourTable FOR UPDATE
AS BEGIN
   UPDATE 
      dbo.YourTable 
   SET 
      YourTimeStampColumn = GETDATE()
   FROM 
      Inserted Ins
   WHERE
      dbo.YourTable.SomeUniqueId = Ins.SomeUniqueId
END

You can have a default constraint on your DateTime field that will cause the current date/time to be inserted when you insert a new row.

From there on, you need to work with a AFTER UPDATE trigger that will update your date/time column each time the row is updated.

You cannot do this second task (updating a date/time stamp when updating the row) using a "formula" as you said - it just doesn't work that way in SQL Server.

You need to provide a trigger something along those lines:

CREATE TRIGGER trgYourTableUpdateTimestamp
  ON dbo.YourTable FOR UPDATE
AS BEGIN
   UPDATE 
      dbo.YourTable 
   SET 
      YourTimeStampColumn = GETDATE()
   FROM 
      Inserted Ins
   WHERE
      dbo.YourTable.SomeUniqueId = Ins.SomeUniqueId
END
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文