代码之家  ›  专栏  ›  技术社区  ›  Venkat Sadasivam

在SQLServer中,INSTEADOF和AFTER触发器有什么区别?

  •  4
  • Venkat Sadasivam  · 技术社区  · 16 年前

    在SQLServer中,INSTEADOF和AFTER触发器有什么区别?

    AFTER触发器是否会在unique key约束之后调用,而不是在unique key约束之前调用触发器?

    2 回复  |  直到 16 年前
        1
  •  12
  •   mrjoltcola    9 年前

    之后 DML操作。 而不是 DML操作。

    差别很大。而不是允许您重写功能,或实现不受支持的功能。我通常使用它来创建可更新的视图。有时视图可能没有密钥保留,但作为设计器,您可能知道要更新哪些基表,因此可以通过编写特定的逻辑在后台进行更新来完成。另一种方法是编写一个存储过程并强制开发人员调用这些过程,而不是对视图执行DML,但在我看来,视图DML是一个很好的抽象,因为开发人员可以将视图视为表。这就是关系设计的本意。

    关于“after unique key constraint”,after触发器将发生在DML成功之后,因此它将发生在任何冲突之后(这将强制回滚)。

        2
  •  1
  •   Arthi    12 年前