SQL Server触发器详解:实现自动业务逻辑

需积分: 10 1 下载量 168 浏览量 更新于2024-07-12 收藏 252KB PPT 举报
"本文主要介绍了SQL Server中的触发器,包括其作用、工作原理以及如何创建和使用INSERT触发器。触发器是一种特殊的存储过程,当对数据库表进行INSERT、UPDATE或DELETE操作时,会自动执行,常用于强制执行复杂的业务规则。在SQL Server中,触发器与表相关联,不能直接调用,且作为一个事务执行,具有回滚功能。 在SQL Server中,有三种类型的触发器:INSERT触发器、UPDATE触发器和DELETE触发器。在提供的示例中,展示了一个INSERT触发器的创建过程,这个触发器名为`trig_transInfo`,它作用于`transInfo`表,当有新记录插入时触发。触发器的主要任务是根据交易类型(`transType`)来调整`bank`表中对应账户的余额。 触发器的工作流程如下: 1. 当新记录插入`transInfo`表时,触发器被激活。 2. 触发器声明并初始化变量`@type`、`@outMoney`、`@myCardID`和`@balance`,用来存储新插入记录的相关信息。 3. 从`inserted`表中提取新插入记录的`transType`、`transMoney`和`cardID`,分别赋值给对应的变量。 4. 使用`IF...ELSE`结构判断交易类型,如果为'支取',则减少相应账户的余额;否则,增加账户的余额。 5. 更新`bank`表,通过`UPDATE`语句修改指定账户的`currentMoney`字段。 6. 触发器执行完毕后,`inserted`和`deleted`表会被系统自动清理。 `inserted`表和`deleted`表是SQL Server为触发器提供的两个虚拟表。`inserted`表存储了触发操作后的新记录或更新后的记录,而`deleted`表则保存了触发操作前的原始记录。这些表在触发器执行期间可供查询,但不允许直接修改。通过对这两个表的检查,可以确保业务规则得到正确执行,例如,检查插入的数据是否合法,或者确认删除操作是否符合规定。 SQL Server的触发器是实现数据库业务逻辑的重要工具,它们能够自动响应数据变化,确保数据的一致性和完整性。通过熟练掌握触发器的创建和使用,可以有效地管理数据库中的复杂业务规则。"