银行sql触发器代码

数据库
众所周知,数据库在电脑后台中都是代码的形式,银行中的sql触发器的代码又是怎样的呢?本文我将为大家重点介绍。

触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。下文为大家介绍银行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. 如何编写高效的数据库代码
  2. mysql触发器的三个状态
  3. 教您如何使用mysql触发器
责任编辑:迎迎 来源: 博客网
相关推荐

2011-03-03 09:30:24

downmoonsql登录触发器

2010-09-13 17:03:34

sql server触

2009-04-07 13:56:03

SQL Server触发器实例

2010-09-01 16:40:00

SQL删除触发器

2011-05-20 14:06:25

Oracle触发器

2009-04-26 22:27:54

触发器密码修改数据库

2021-08-05 07:28:27

SQL触发器结构

2010-10-22 11:10:43

SQL Server触

2010-10-20 14:34:48

SQL Server触

2010-11-08 11:49:24

SQL Server管

2010-07-16 10:19:31

2010-11-12 15:35:55

SQL Server约

2010-07-06 14:47:03

SQL Server数

2010-11-10 13:37:01

SQL Server触

2011-04-14 10:53:00

MySQLSQL触发器

2009-12-24 17:52:05

WPF触发器

2010-07-05 11:09:55

SQL Server触

2009-09-18 14:31:33

CLR触发器

2010-04-19 10:43:27

SQL Server

2010-10-19 15:31:40

sql server触
点赞
收藏

51CTO技术栈公众号