11

该表没有最后更新的字段,我需要知道现有数据何时更新。因此,添加最后更新的字段将无济于事(据我所知)。

4

5 回答 5

5

SQL Server 2000 不会为您跟踪此信息。

根据您的数据库模型,可能有创造性/模糊的方式来猜测这个日期是什么。但是,如果您谈论的是与其他数据无关的 1 个表,那么您就不走运了。

于 2008-08-05T20:58:17.477 回答
1

如果没有某种审计机制,您将无法检查更改。您正在寻找提取尚未收集的信息。如果您只需要知道何时添加或编辑了记录,那么添加一个在记录更新时通过触发器更新的日期时间字段将是最简单的选择。

如果您还需要跟踪记录何时被删除,那么您将需要使用审计表,并在添加、编辑或删除记录时从触发器中填充一行。

于 2008-08-05T21:32:01.013 回答
1

您可以尝试使用日志查看器;这基本上只是让您查看事务日志中的事务,因此您应该能够找到更新相关行的语句。我不建议将此作为生产级审计策略,但我发现它在紧要关头很有用。

这是我用过的一个;它是免费的,并且(仅)适用于 SQL Server 2000。

http://www.red-gate.com/products/SQL_Log_Rescue/index.htm

于 2008-09-02T05:43:32.263 回答
0

您可以将时间戳字段添加到该表并使用更新触发器更新该时间戳值。

于 2008-08-05T20:34:41.817 回答
0

OmniAudit是一个商业软件包,它在整个数据库中实现审计。

一种免费的方法是为每个表编写一个触发器,该触发器在触发时将条目添加到审计表中。

于 2008-08-05T21:04:47.153 回答