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
文件大小:
评论区