如何找出在SQL Profiler或Trace中影响的行



我正在使用跟踪来记录所有通过系统运行的所有删除或更新查询。问题是,如果我运行了像DELETE FROM [dbo].[Artist] WHERE ArtistId>280这样的查询,我知道删除了多少行,但我无法找出删除了哪些行(它们已有的数据)。

我正在考虑将其作为伐木系统,因此查看哪些行受到影响以及如果可能的情况有哪些数据将很有用。我真的不想在这项工作中使用触发器,但是如果我必须(如果是可行的话)。

如果您需要原始数据并计划将所有已删除的数据存储在单独的表中,为什么不只是逻辑上删除原始数据而不是物理删除它?即。

UPDATE dbo.Artist SET Artist_deleted = 1 WHERE ArtistId>280

然后,您只需要在当前表中添加一列,而不是创建新的表和脚本来支持这些列。然后,如果您担心磁盘空间/性能等,则可以根据已删除的标志对当前表进行分区。

最新更新