当数据库系统在进行特定的 *** 作时,发现有触发器定义,就去执行触发器定义的功能,从而满足某些特定的需要。
例如,在更新某些数据后,再去更新特定的数据。
这就可以定义一个触发器完成这样的需要。
触发器的优点:
以事件方式来处理. 当数据发生变化的时候, 自动作处理。
缺点:
当数据库之间 导出导入的时候, 可能会引起不必要的触发逻辑。
触发器的优点: 以事件方式来处理. 当数据发生变化的时候, 自动作处理.缺点: 当数据库之间 导出导入的时候, 可能会引起不必要的触发逻辑.
存贮速度和执行速度: 代码是存储在服务器上, 执行速度主要取决于 数据库服务器的性能与触发器代码的复杂程度。
触发器具有以下特点:
(1)触发器有两种能自行保持的稳定状态,分别表示二进制数0和1或二值信息逻辑0和逻辑1。
(2)在适当的触发信号作用下,触发器可从一种稳定状态转变为另一种稳定状态;当触发信号消失后,能保持现有状态不变。
触发器的优点:
触发器可通过数据库中的相关表实现级联更改;不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用CHECK约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其它表中的列。
例如,触发器可以使用另一个表中的SELECT比较插入或更新的数据,以及执行其它 *** 作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE或DELETE)允许采取多个不同的对策以响应同一个修改语句
约束和触发器在特殊情况下各有优势。触发器的主要好处在于它们可以包含使用 Transact-SQL 代码的复杂处理逻辑。因此,触发器可以支持约束的所有功能;但它在所给出的功能上并不总是最好的方法。实体完整性总应在最低级别上通过索引进行强制,这些索引或是PRIMARYKEY和UNIQUE约束的一部分,或是在约束之外独立创建的。
假设功能可以满足应用程序的功能需求,域完整性应通过CHECK约束进行强制,而引用完整性(RI)则应通过FOREIGNKEY约束进行强制。在约束所支持的功能无法满足应用程序的功能要求时,触发器就极为有用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)