触发器(sql)

来源:互联网 发布:淘宝客户群体分析 编辑:程序博客网 时间:2024/05/12 12:14
--触发器
/*
create triggeer 触发器名称 on table for (insert update delete)
*/


--银行账户操作案例
--针对存取款动作 来对账户基表进行修改
--两张表 一张账户表 一张账户信息交易表
--账户信息表
create table accounttb(
accountid int identity(1,1) primary key,
accountname varchar(50),
currentmoney money
)
--交易信息表
create table transtb(
transid int identity(1,1) primary key,
transaccount int,
transtype varchar(10),
transmoney money
)


insert into accounttb values('张三',1000)


select *from accounttb




--当交易表中的有数据新增是 则对账户表基表进行操作
create trigger accounttrig
on transtb for insert
as
declare @opertype varchar(10), @money money, @transaccountid int
begin
 select @opertype=transtype,@money=transmoney,@transaccountid=transid from inserted
--print @transaccountid
if(@opertype='取')
begin 
   update accounttb set currentmoney=currentmoney-@money
end
else
begin
   update accounttb set currentmoney=currentmoney+@money
end
end


--向表中添加数据
insert into transtb values(1,'取',200)
 select *from transtb


--当删除交易进行时 对交易信息做备份


alter  trigger deltri on transtb for delete
as
begin 
  if not exists (select *from sysobjects where name='backtb')
  select *into backtb from deleted
else
  insert into backtb select*from deleted
end


delete from transtb where transid=1

select *from backtb

最后娱乐一下 一部很好看的儿童动漫:蛋计划 http://www.iqiyi.com/v_19rrnegutc.html

                                                                       欢乐动漫http://www.happyanimation.com.cn


0 0