如何查找在 SQL Server 表中插入或更新行的时间

Posted

技术标签:

【中文标题】如何查找在 SQL Server 表中插入或更新行的时间【英文标题】:How to find when a row is inserted or updated in SQL Server table 【发布时间】:2012-01-31 16:46:45 【问题描述】:

我在 SQL Server 中有一个表,但是当值插入表中时没有显示列。而且我也不想创建一个。

有没有一种方法可以找到某人在 SQL Server 2008 表中插入行或更新时的时间和日期?

【问题讨论】:

不,没有办法实现这一点 - 如果您需要该日期/时间信息,您需要添加一个列来保存该信息,并在发生插入和/或更新时在触发器中更新它 【参考方案1】:

如果您不想修改现有表,唯一的方法是创建另一个表来记录活动。然后您可以在源表上使用ON INSERT / ON UPDATE 触发器,并将插入和更新的时间和日期记录到日志表中。

【讨论】:

【参考方案2】:

如果您不想更改现有架构,请创建审计表并在源表上创建触发器以更新审计表。

【讨论】:

【参考方案3】:

您可以在 sql server 2005/2008 中使用 On Insert 和 On Update 触发器,并且您的必填字段在 insertedupdated 表中可用,但如果您以后需要使用此信息,则需要添加一个新表和记录您的信息!

我自己做这样的事情总是在我的表中添加 2 列

LastActivityBy 与用户表的关系

LastActivityOn 日期时间

所以您不需要使用任何其他表。

【讨论】:

以上是关于如何查找在 SQL Server 表中插入或更新行的时间的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Excel 工作表中的行插入 SQL Server 2005 或 oracle

sql server 2008中“Merge”子句的性能如何?

如何将数据表插入到 SQL Server 数据库表中?

如何在 SQL Server 2005 中进行更新插入(更新或插入)

如何使用 R 向 SQL Server 表中插入数据?

SQL Server 2008 行插入和更新时间戳