是否可以在不使用datetime列的情况下查看记录何时插入SQL表?
答案 0 :(得分:1)
没有。 sql server没有开箱即用的功能。
答案 1 :(得分:1)
如果你使用SQL Server 2008,你可以查看Change Data Capture这是一个我认为会有这个新审计功能。
另一种可能性是在表格上放置一个标识列。然后你可以按列降序排序。
您也可以尝试DBCC Log命令。我不知道这是否会给你你想要的东西,它可能需要一些工作才能让你能够解释它给你的数据。
答案 2 :(得分:1)
如果您想要查看插入或更新日期等元数据,则需要进行设置。查看插入日期的最简单方法是添加日期插入列。更难的方法是添加审计(坦率地说,包含业务关键信息的每个生产系统都应该具有此功能)。这可能涉及触发器或外部审计系统或更改SQL Server 2008中的数据跟踪,但这些方法都不会自动设置,您无法使用它们查找在设置系统之前添加的数据。如果有人最近添加了一条记录,您可以使用读取日志的工具告诉它何时从事务日志中添加,但这通常是一种昂贵的方式,它仍然不会告诉您谁添加了记录大多数审计解决方案都会。
答案 3 :(得分:0)
是的,如果您使用的dbms具有日志功能并且您已启用该日志功能。然后你可以查询system-log-table。 oracle有类似的东西,默认情况下启用。如果您使用的是sqlserver,我认为您必须启用日志记录机制。
答案 4 :(得分:0)
我知道的唯一方法是将备份+事务日志还原到某个时间点。然后你可以检查行是否存在,清洗,冲洗,重复。如果这是sql 2000,我相信有一些日志解析器,所以他们可能会帮助你找到日志中提交行的位置。如果它是sql 2005/2008,我认为还没有日志解析器。
答案 5 :(得分:0)
对于SqlServer,你需要一个sql日志查看器/分析器,例如Red Gate工具套件中的那个。