我处于需要向表中添加触发器以跟踪对遗留系统的更改的不幸情况。我在 TABLE_A 上有插入、更新和删除触发器,每个触发器都将两列的值写入 TABLE_B,如果由删除触发器填充,则位标志设置为 1。
TABLE_B 中的每个条目都会出现两次。插入创建两行,更新创建两行(我们相信),删除创建插入然后删除。
是遗留应用程序这样做,还是 SQL 这样做?
编辑(添加更多细节):
触发器主体:
..删除后
INSERT INTO TableB(col1, isdelete) SELECT col1, 1 from DELETED
.. 插入后
INSERT INTO TableB(col1, isdelete) SELECT col1, 0 from INSERTED
..更新后
INSERT INTO TableB(col1, isdelete) SELECT col1, 0 from DELETED
我试过探查器,没有看到任何重复的语句正在执行。