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

    --数据库表名

    CREATE TABLE BANKUSER
    (
    BID INT PRIMARY KEY IDENTITY,
    BNUM NVARCHAR(50),
    BNAME NVARCHAR(50) ,
    BPWD NVARCHAR(50),
    BMONEY DECIMAL
    )

    --数据库表名

    CREATE TABLE BANKLOGS
    (
    LID INT PRIMARY KEY IDENTITY,
    BID INT,
    BNUM NVARCHAR(50),
    BNAME NVARCHAR(50) ,
    BT NVARCHAR(50),
    BMONEY DECIMAL

    )

    --创建insert触发器
    create trigger trig_insert
    on users--添加的数据库表
    after insert
    as
    begin
    declare @name varchar(20), @hao int, @num int;
    select @name=name from inserted;
    select @hao=hao from inserted;
    select @num=num from inserted;
    insert into yang values(@name,@hao,@num)--触发的数据库表
    end
    ---删除
    alter trigger trig_inserts
    on users
    after delete
    as
    begin
    if object_id(N'yang',N'U') is null--判断BANKLOGS表是否存在
    CREATE TABLE yang
    (
    id int primary key identity,
    name nvarchar(50),
    hao nvarchar(50),
    num int

    );--创建记录表
    declare @id int;
    select id as 已删除的学生编号, name, hao,num
    from deleted
    --delete from yang where id=@id

    end

    ----- 添加

    create trigger trig_stus
    on BANKUSER
    after insert
    as
    begin
    if object_id(N'BANKLOGS',N'U') is null--判断BANKLOGS表是否存在
    CREATE TABLE BANKLOGS
    (
    LID INT PRIMARY KEY IDENTITY,
    BID INT,
    BNUM NVARCHAR(50),
    BNAME NVARCHAR(50) ,
    BT NVARCHAR(50),
    BMONEY DECIMAL

    );--创建记录表
    insert into BANKLOGS (BNUM,bid,BNAME,BT,BMONEY)
    select BNUM,bid,BNAME,1,BMONEY from inserted
    end


    insert into BANKUSER (BNUM ,BNAME,BMONEY)
    values ('001','小杨',1000000)
    select * from BANKUSER
    select * from BANKLOGS
    ---修改
    create trigger trig_sss
    on BANKUSER
    after update
    as
    begin
    if object_id(N'BANKLOGS',N'U') is null--判断BANKLOGS表是否存在
    CREATE TABLE BANKLOGS
    (
    LID INT PRIMARY KEY IDENTITY,
    BID INT,
    BNUM NVARCHAR(50),
    BNAME NVARCHAR(50) ,
    BT NVARCHAR(50),
    BMONEY DECIMAL

    );--创建记录表
    declare @bmoney_new DECIMAL
    declare @bmoney_old DECIMAL
    select @bmoney_new=BMONEY from inserted
    select @bmoney_old=BMONEY from deleted
    if @bmoney_old>=@bmoney_new
    begin
    if(@bmoney_new>=0)
    begin
    insert into BANKLOGS (BNUM,bid,BNAME,BT,BMONEY)
    select BNUM ,bid,BNAME,2,BMONEY from deleted
    end
    else
    begin
    print '账户余额不足!'
    rollback tran
    end
    end
    else
    begin
    insert into BANKLOGS (BNUM,bid,BNAME,BT,BMONEY)
    select BNUM ,bid,BNAME,3,BMONEY from deleted
    end

    end

    update BANKUSER set BMONEY=BMONEY-1000000 where BNUM='001'


    update BANKUSER set BMONEY=BMONEY+2000000 where BNUM='001'

  • 相关阅读:
    208. Implement Trie (Prefix Tree)
    97. Interleaving String
    314. Binary Tree Vertical Order Traversal
    windows获取IP和MAC地址【Qt】
    阳历阴历转换
    getDat(char *val)获得某一天是这一年中的第几天
    int位数的获取及int类型转char *
    以二进制形式输出char *数据
    char类型变量二进制形式输出
    int类型变量以二进制形式输出
  • 原文地址:https://www.cnblogs.com/net520/p/7860744.html
Copyright © 2011-2022 走看看