银行系统sql触发器代码。

if exists (select * from sysdatabases where name ='BankCard')

drop database BankCard

go

create database BankCard/*创建数据库*/

use BankCard

create
table Bank

(

CardID char(10) primary key,

BankName varchar(20)not null,

UserName varchar(20)not null,

Depisit money not null,

Payout money not null

)

alter 
table Bank add constraint DF_Depisit default (0) for Depisit

alter
table Bank add constraint DF_Payout default (0)for Payout

if exists (select * from sysobjects where name='trade')

drop
table trade

create
table Trade

(

TradeID int identity(1,1),

CardID char(10),

TradeDate DateTime  not null,

TradeMoney Money,

TradeType char

)

alter
table Trade add constraint PK_TradeID primary key(TradeID),

alter
table Trade add constraint FK_CardID foreign key (CardID) references Bank(CardID),

alter
table Trade add constraint CK_TradeMoney check (TradeMoney>0)



/*触发器(trigger)*/

if exists (select * from sysobjects where name ='trig_Bank')

drop trigger trig_Bank



create trigger trig_Bank

on Trade /*trig_Bank为触发器的名称,Bank为表的名称*/

for  insert/*可以为inser、delete、select、update*/

as

declare @type char(4),@balance money,@outMoney money,@myCardID int

/*定义变量,用于临时存储

/*从临时表中获取插入的记录:类型、卡号、金额*/

select @type=TradeType,@outMoney=TradeMoney,@myCardID=CardID from  inserted

if(@type='支取')

update bank set Payout =Payout-@outMoney where cardID=@myCardID

insert into trans(cardID,transType,transMoney)

values('10001000',支取,200)

 

go

select * from Bank

select *from trade

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值