触发程序(trigger)是一种特殊的预存程序,执行特定的陈述式(UPDATE、INSERT或DELETE)就可以启动触发程序。触发程序与其他预存程序相同,可以是由简单,亦或是复杂的T-SQL陈述式组成;至于与其他预存程序不同的地方,则在于当指定的资料被修改,触发程序即自动执行,无法依名称以手动执行。触发程序执行时,称为触动(fire)。触发程序虽建立在现有的资料库资料表中,但它可以存取其他资料库的资料表和物件。触发程序不能建立在临时的资料表或临时的系统资料表上,只能建立在使用者自订资料表或自订的检视表中。执行触发程序所在的资料表或检视表,称为触发程序资料表(triggertable)。
触发器常见的电路结构形式有两个与非门或两个或非门构成的基本RS触发器、由基本RS触发器和导引门构成的钟控RS触发器、主从型JK触发器以及维护阻塞D触发器等。基本RS触发器的输出随着输入的变化而变化,电平触发;钟控RS触发器是在CP=1期间输出随输入的变化而变化;主从型JK触发器在时钟脉冲下降沿到来时触发;维持阻塞D触发器是在时钟脉冲上升沿到来时刻触发。触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行 *** 作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。SQL3的触发器是一个能由系统自动执行对数据库修改的语句。
触发器可以查询其他表,而且可以包含复杂的SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
触发器与存储过程的唯一区别是触发器不能执行EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发执行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)