我处于一种不幸的情况,即需要向表中添加触发器以跟踪对旧系统的更改。我在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
我尝试过探查器,但没有看到任何重复的语句被执行。
答案 0 :(得分:0)
可能是应用程序在看到对其数据的操作时再次更改数据。
也有可能在其他地方存在触发器 - 是否有可能在TableB上有一个触发器创建额外的行?
需要更多细节来更全面地解决这个问题。