【发布时间】:2009-06-02 13:51:06
【问题描述】:
有没有办法找到这些信息?也许在 Sql Server 的某种内部日志中? 我需要根据历史数据生成报告,但我没有在我的应用程序中实现该功能,因为过去不是必需的。现在我被困住了。
谢谢
【问题讨论】:
标签: sql-server sql-server-2005 logging
有没有办法找到这些信息?也许在 Sql Server 的某种内部日志中? 我需要根据历史数据生成报告,但我没有在我的应用程序中实现该功能,因为过去不是必需的。现在我被困住了。
谢谢
【问题讨论】:
标签: sql-server sql-server-2005 logging
您必须向表中添加一列(使其可为空),然后使用 getdate() 为所有行播种。这当然不准确,但这是您唯一的选择。所有行都有数据后,将 NOT NULL 约束添加到列。
【讨论】:
你可能很幸运能够从一些日志中获取数据,但你需要为未来做好准备。不管规范怎么说,添加一些额外的信息和日志记录是个好主意。
在非常重要的表中,我有一个包含行的每个版本的历史表,包括 LastChgID 和 LastChgDate。
在重要的表中我有 CreateID、CreateDate、LastChgID、LastChgDate
在所有其他表(代码表除外)中,我有 LastChgID、LastChgDate
当您设计系统时,您会知道什么是重要的。
其中很多都显示在屏幕上,但即使不是,有些心烦意乱的人会打电话/发邮件给谁这样做?你可以说“你做了一个 2009-06-02 10:06:22.213!”
【讨论】:
对不起,查理。如果它是一个网络应用程序,您可能能够根据该日志生成报告。
【讨论】:
保留事务日志并且您正在发送日志的可能性很小。请咨询您的 DBA。
这些日志可以为您提供您正在寻找的日期/时间戳。
【讨论】:
SQL Server 没有对所有数据更改进行自动和完整的审核。
您必须构建它。无论它是否在最初的需求中,跟踪事情发生的时间是常识。
最好的办法是添加这个,并接受新功能之前的数据没有跟踪。
【讨论】: