|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”从以上的先容中我们能够看出触发用具有壮大的功效,那末MSSQLServer是怎样办理触发器来完成这些义务呢?上面我们将对其事情道理及完成做较为具体的先容。
每一个触发器有两个特别的表:拔出表和删除表。这两个表是逻辑表,而且这两个表是由体系办理的,存储在内存中,不是存储在数据库中,因而不同意用户间接对其修正。这两个表的布局老是与被该触发器感化的表有不异的表布局。这两个表是静态驻留在内存中的,当触发器事情完成,这两个表也被删除。这两个表次要保留因用户操纵而被影响到的原数据值或新数据值。别的,这两个表是只读的,即用户不克不及向这两个表写进内容,但能够援用表中的数据。比方可用以下语句检察DELETED表中的信息:
select*fromdeleted
上面具体先容这两个表的功效:
12.7.1拔出表的功效
对一个界说了拔出范例触发器的表来说,一旦对该表实行了拔出操纵,那末对向该表拔出的一切行来讲,都有一个响应的正本寄存到拔出表中。即拔出表就是用来存储向原表拔出的内容。
12.7.2删除表的功效
对一个界说了删除范例触发器的表来说,一旦对该表实行了删除操纵,则将一切的删除行寄存至删除表中。如许做的目标是,一旦触发器碰到了强制它中断的语句被实行时,删除的那些行能够从删除表中得以恢复。
必要夸大的是,更新操纵包含两个部分,即先将更新的内容往失落,然后将新值拔出。因而对一个界说了更新范例触发器的表来说,当呈报会更新操纵时,在删除表中寄存了旧值,然后在拔出表中寄存新值。
因为触发器仅当被界说的操纵被实行时才被激活,即仅当在实行拔出、删除、和更新操纵时,触发器将实行。每条SQL语句仅能激活触发器一次,大概存在一条语句影响多笔记录的情形。在这类情形下就必要变量@@rowcount的值,该变量存储了一条SQL语句实行后所影响的纪录数,可使用该值对触发器的SQL语句实行后所影响的纪录求算计值。一样平常来讲,起首要用IF语句测试@@rowcount的值以断定前面的语句是不是实行。
能够以较低的成本向客户提供IT所有权,当节约成本成为客户最高优先级时,解决方案提供商可以向更多的客户同时提供服务。虽然有许多来自RDBMS固有的局限性。 |
|