如何找出 SQL Profiler 或 trace 中受影响的行?
How to find out the rows affected in SQL Profiler or trace?
我正在使用跟踪来记录通过系统的所有删除或更新查询 运行。问题是,如果我 运行 一个像 DELETE FROM [dbo].[Artist] WHERE ArtistId>280
这样的查询,我知道有多少行被删除了,但我无法找出删除了哪些行(它们拥有的数据)。
我正在考虑将此作为一个日志系统,因此如果可能的话,查看哪些行受到影响以及它们拥有哪些数据会很有用。我真的不想为这项工作使用触发器,但如果必须(并且可行的话)我会使用。
如果您需要原始数据并计划将所有已删除的数据存储在单独的 table 为什么不从逻辑上删除原始数据而不是物理上删除它?即
UPDATE dbo.Artist SET Artist_deleted = 1 WHERE ArtistId>280
那么您只需向当前的 table 添加一列,而不是创建新的 table 和脚本来支持这些。如果您担心磁盘 space/performance 等,您可以根据删除的标志对当前 table 进行分区
我正在使用跟踪来记录通过系统的所有删除或更新查询 运行。问题是,如果我 运行 一个像 DELETE FROM [dbo].[Artist] WHERE ArtistId>280
这样的查询,我知道有多少行被删除了,但我无法找出删除了哪些行(它们拥有的数据)。
我正在考虑将此作为一个日志系统,因此如果可能的话,查看哪些行受到影响以及它们拥有哪些数据会很有用。我真的不想为这项工作使用触发器,但如果必须(并且可行的话)我会使用。
如果您需要原始数据并计划将所有已删除的数据存储在单独的 table 为什么不从逻辑上删除原始数据而不是物理上删除它?即
UPDATE dbo.Artist SET Artist_deleted = 1 WHERE ArtistId>280
那么您只需向当前的 table 添加一列,而不是创建新的 table 和脚本来支持这些。如果您担心磁盘 space/performance 等,您可以根据删除的标志对当前 table 进行分区