-1

我处于需要向表中添加触发器以跟踪对遗留系统的更改的不幸情况。我在 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

我试过探查器,没有看到任何重复的语句正在执行。

4

1 回答 1

0

当应用程序看到对其数据的操作时,可能会再次更改数据。

触发器也可能存在于其他地方 - 是否有可能在 TableB 上有一个触发器正在创建额外的行?

需要更多细节才能更全面地解决这个问题。

于 2012-06-15T14:28:58.713 回答