我想这样做,因为我想知道特定行已更改了多少次。
这可能吗?
谢谢
读取日志文件要么需要商业工具,要么需要大量的 SQL 内部知识才能实现。您可以使用以下命令查看一些原始输出: Select * from ::fn_DBlog(null,null)
实际上解码以找到被更改的相同记录并确保提交任何更改等将是一项艰巨的任务。因此,您能够做到这一点是“可能的”,但不是很“可能”。
如果您需要数据库中的该功能,那么您应该查看代码中的触发器/逻辑。
迟到的答案,但我希望它对新读者有用……</p>
您可以尝试的另一项功能是 DBCC LOG,但不幸的是,这是与 fn_dblog 相同的未记录功能。
SQL Server 中事务日志的问题在于,它从未打算用于此目的,而只是为了允许时间点恢复和事务属性。
您可以尝试使用 ApexSQL的商业日志阅读器。
这里还有几个类似的帖子,可能会让你朝着正确的方向前进。
考虑使用 SQL Server 2008。
SQL Server 2008 有一个新功能,称为更改数据捕获,它完全可以满足您的需求,即随着时间的推移跟踪数据修改。
查看日志文件以跟踪更改不是明智的做法。这样做将为您提供有限的历史记录,其范围还取决于您用于数据库的恢复模型。
通过使用日志表并使用 SQL Server 触发器填充它,您可以通过少量开发“推出自己的”解决方案。这种解决方案的适用性当然取决于您的业务案例。
请查看以下 TechNet 文章以获得一些有趣的阅读: