我使用跟踪来记录通过系统运行的所有删除或更新查询。问题是,如果我运行{{1}}之类的查询,我知道删除了多少行,但我无法找出哪些行被删除(他们拥有的数据)。
我正在考虑将此作为日志记录系统,因此,如果可能的话,查看哪些行受影响以及它们具有哪些数据将会很有用。我真的不想使用触发器来完成这项工作,但如果必须的话,我会这样做(如果可行的话)。
答案 0 :(得分:4)
如果您需要原始数据并计划将所有已删除的数据存储在单独的表中,为什么不只是逻辑删除原始数据而不是物理删除它?即。
UPDATE dbo.Artist SET Artist_deleted = 1 WHERE ArtistId>280
然后,您只需要在当前表中添加一列,而不是创建新的表和脚本来支持这些。如果您担心磁盘空间/性能等,则可以根据已删除的标志对当前表进行分区。