首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL Server2005触发器模拟ATM机存取款的功能

2012-08-08 
SQL Server2005触发器模拟ATM机存取钱的功能根据上面的简单介绍,我们举一个例子。以下是一个银行系统的二张

SQL Server2005触发器模拟ATM机存取钱的功能
根据上面的简单介绍,我们举一个例子。
以下是一个银行系统的二张表:
银行卡信息表(卡号、银行名称、帐户名、密码、余额)
交易信息表(交易号、卡号、交易日期、交易类型、金额),交易类型分“存入”、“支取”和“转账“

创建一个触发器,该触发器可以根据交易信息表内容的变化而修改银行卡的余额信息

表信息如下:

create trigger tradeinfo_trigger on tradeinfofor insertasbegindeclare @v_tradetype char(10) --获取交易类型declare @v_trademoney money --获取交易的moneydeclare @v_cardid char(10) --银行卡的iddeclare @v_Balance money --余额set @v_tradetype=(select tradetype from inserted)set @v_trademoney=(select trademoney from inserted)set @v_cardid=(select cardid from inserted)set @v_Balance=(select Balance from cardinfo where cardid = @v_cardid)if @v_tradetype = '取钱' and @v_trademoney <= @v_Balancebeginupdate cardinfo set Balance=@v_Balance-@v_trademoney where cardid=@v_cardidendelse if @v_tradetype = '存钱'beginupdate cardinfo set Balance=@v_Balance+@v_trademoney where cardid=@v_cardidendelse beginrollback transaction --如果操作失败(所有存钱、取钱过程终止,且数据不进行数据库中)endend


执行存储过程:exec trade_proc '123456',1000,'存钱'

执行结果:
123456            中国银行        哈密瓜          123456        101000.00

4        123456            2011-03-30 15:45:24.547        1000.00        存钱 

热点排行