MS SQL 2008如何从日志中读取

时间:2010-03-12 09:22:39

标签: sql sql-server-2008 logging

我有一个包含很多行的表,有没有办法找出当插入一个具体的行? (我没有创建/更新时间列)

由于

2 个答案:

答案 0 :(得分:3)

检查日志以阅读此类信息可以在单个日志条目的基础上完成,但格式仍然没有记录,并且解码起来并不简单。我只会出于纯粹的兴趣或法医目的来看待它。

如果你想看看做一个简单的事务日志条目会有多讨厌,看看http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/

如果您需要更改信息,您需要将其构建到软件中,或者因为您使用的是SQL Server 2008,该版本中有一个名为Change Data Capture(http://msdn.microsoft.com/en-us/library/bb522489.aspx)的新功能,它可以为你效力。

鉴于您使用的是SQL 2008,我建议将CDC功能作为前进的路径。

答案 1 :(得分:1)

不,通常日志不在那里供用户分析。它也没有以一种容易导致这种信息的方式组织,除非你从一开始就解码它。此外,由于日志在每次备份后都会被删除....即使这样,您也可能不知道,除非您从不进行备份。

存在日志的唯一原因是在发生灾难时向前滚动,以允许上次备份到达日志点。

通常,如果您希望将该信息作为表的一部分,请将其作为表的一部分(.e。插入create / update timestamp列)。