SQL Server 银行交易触发器

本代码实现了一个名为 trig_InsertTransInfo 的 SQL Server 触发器,用于在 TransInfo 表插入数据时自动更新银行账户余额。

触发器逻辑:

  1. TransInfo 表发生插入操作时,触发器捕获 inserted 表中的数据,该表包含了新插入的行。
  2. inserted 表中获取交易卡号 (CardId)、交易类型 (transType) 和交易金额 (transMoney)。
  3. 根据交易类型判断是支取还是存款:
    • 如果是支取 (@type='支取'),则从对应卡号 (@cardId) 的银行账户中扣除交易金额 (@money)。
    • 如果是存款,则将交易金额 (@money) 添加到对应卡号 (@cardId) 的银行账户中。
  4. 通过更新 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
rar 文件大小:894.52KB