1

所以我遇到了如下问题:
- 我有表 A。
- 我有表 B,它有表 A 的外键。
- 我在表 A 上有一个触发器,确保表 A 中的每个项目至少有表 B 中的一行指向它(通过外键)。
- 触发器运行“插入”命令。

现在的问题是,当我插入表 A 时,触发器会引发错误,因为表 B 还没有包含指向表 A 中新行的外键的行。表 B 上的行将在事务结束时插入,但触发器没有给我机会。

那么什么是解决问题的好方法呢?有没有办法告诉触发器仅在事务中的最后一个命令执行后才运行?

4

1 回答 1

0

如果您需要在表 A 上触发触发器,但不知道表 b 中是否有任何相应的行,则应使用“INSTEAD OF”触发器。这将允许您在将行插入表 A 之前检查表 B。如果表 B 中有匹配项,则继续插入到 A 中,否则,将行添加到 b 然后 A,或者跳过不匹配的数据并向应用程序返回错误。

http://msdn.microsoft.com/en-us/library/ms175521(v=SQL.105).aspx

于 2013-08-07T20:25:39.227 回答