zoukankan      html  css  js  c++  java
  • sql 触发器

    创建insert触发器

    use studb
    go
    if exists(select name from sysobjects where name='trig_transinfo')
    drop trigger trig_transinfo
    go
    create trigger trig_transinfo
    on  transinfo
    for insert
    as
    declare @ type char(4),@outmoney money
    declare @mycardid char(10),@balance money
    select @type=transtype,@outmoney=transmoney,@mycardid=cardid from inserted
    if(@type='支取')
    update bank set currentmoney=currentmoney-@outmoney where cardid=@mycardid
    else
     update bank set currentmoney=currentmoney+@outmoney where cardid=@mycardid

    print '交易成功!交易金额',+convert(varchar(20),@outmoney)
    select @balance=currentmoney from bank where cardid=@mycardid
    print '卡号 '+ @mycardid +'金额' + convert(varchar(20),balance)
    go
    set nocount on
    insert into transinfo(cardid,transtype,transmoney) values('1001 0001','支取',200)
    insert into transinfo(cardid,transtype,transmoney) values('1001 0002','存入',50000)
    select * from bank
    select * from transinfo

    创建delete触发器

    use studb
    go
    if exists(select name from sysobjects where name='trig_delete_transinfo')
    drop ttrigger trig_delete_transinfo
    go
    create trigger trig_delete_transinfo
    on transinfo
    for delete
    as
    print '开始备份数据,请稍候.....'
    if not exists(select * from sysobjects where name='backuptable')
    select * into backuptable from deleted
    else
    insert into backuptable select * from deleted
    print '备份数据成功,备份表中的数据为:'
    select * from backuptable
    go

    set nocount on
    delete transinfo
    print '交易信息表中的数据'
    select * from transinfo

    创建update触发器
    use studb
    go
    if exists(select  name from sysobjects where name='trig_update_bank')
    drop trigger trig_update_bank
    go
    create trigger trig_update_bank
    on bank
    for update
    as
    declare @beforemoney money,@aftermoney money
    select @beforemoney=currentmoney from deleted
    select @aftermoney=currentmoney from inserted
    if abs(@aftermoney-beforemoey)>20000
    begin
    print '交易金额' + convert(varchar(8),abs(@aftermoney-@beforemoney))
    raiserror('没笔交易不能超过2万元,交易失败',16,1)
    roolback transaction
    end

    go
    set nocount on
    update bank set currentmoney=currenymoney+25000 where cardid='1000 0001'
    go
    insert  into transinfo(cardid,transtype,transmoney) values('1000 0002','支取',30000)
    insert into  transinfo(cardid,transtype,transmoney) values('1000 0002','存入',5000)
    go
    print '帐户信息表中的数据'
    select * from bank
    print '交易信息表中的数据'
    select * from transinfo

  • 相关阅读:
    SAP PI 如何实现消息定义查询
    EWM与ERP交互程序
    ITS Mobile Template interpretation failed. Template does not exist
    SAP Material Flow System (MFS) 物料流系统简介
    SAP EWM Table list
    EWM RF 屏幕增强
    SAP EWM TCODE list
    SAP扩展仓库管理(SAPEWM)在线研讨会笔记
    ERP与EWM集成配置ERP端组织架构(二)
    EWM RF(Radio Frequency)简介
  • 原文地址:https://www.cnblogs.com/benzhang/p/1458786.html
Copyright © 2011-2022 走看看