SQL Server 银行交易触发器
本代码实现了一个名为 trig_InsertTransInfo 的 SQL Server 触发器,用于在 TransInfo 表插入数据时自动更新银行账户余额。
触发器逻辑:
- 当
TransInfo表发生插入操作时,触发器捕获inserted表中的数据,该表包含了新插入的行。 - 从
inserted表中获取交易卡号 (CardId)、交易类型 (transType) 和交易金额 (transMoney)。 - 根据交易类型判断是支取还是存款:
- 如果是支取 (
@type='支取'),则从对应卡号 (@cardId) 的银行账户中扣除交易金额 (@money)。 - 如果是存款,则将交易金额 (
@money) 添加到对应卡号 (@cardId) 的银行账户中。
- 如果是支取 (
- 通过更新
bank表中的CurrentMoney字段来实现账户余额的更新。
代码示例:
create trigger trig_InsertTransInfo on TransInfo for insert
as
begin
declare @cardId char(10)
declare @type char(4)
declare @money int
select @cardId=CardId, @type=transType, @money=transMoney
from inserted
if(@type='支取')
update bank set CurrentMoney=CurrentMoney-@money where CardId=@cardId
else
update bank set CurrentMoney=CurrentMoney+@money where CardId=@cardId
end
文件大小:894.52KB
评论区