可以替代触发器与常规触发器共存吗?如果是这样,我们应该注意哪些潜在的问题?
答案 0 :(得分:5)
INSTEAD OF
个触发器可以与普通触发器共存。我做得很好。
INSTEAD OF
触发器存在许多潜在问题,主要是因为它们用您定义的任何内容替换正常的插入/更新/删除行为。开发人员可能不会想到UPDATE User SET Address = 'foo' WHERE UserID = 4
,但如果您的触发器使用它作为触摸十几个身份验证表的钩子,并且可能与世界各地的服务器通信,那么您自己就会给自己带来很多潜在的混淆。 / p>
保持这些触发器的行为与IUD语句的预期行为一致。不要做太多。
INSTEAD OF
触发器是一个非常强大的工具,很容易被滥用。适当而周到地使用它们。
答案 1 :(得分:1)
我没有发现任何关于同时使用INSTEAD OF
和AFTER
(AKA FOR
)触发器的问题。 INSTEAD OF
触发器的主要问题是:
INSTEAD OF
触发器; OUTPUT INTO
条款(即你的身份值为0); 这些警告都与AFTER
触发器无关,所以在这方面你没有什么可担心的。虽然我会说在视图而不是表上编写INSTEAD OF
触发器更常见,因为它们干扰表操作的可能性较小。它们主要被设计为帮助您创建可插入/可更新视图的工具。
无论如何,如果你小心的话,你会没事的,但我仍然建议不要使用INSTEAD OF
触发器,除非你实际上需要,因为它们通常会使操作变得更加困难推理。