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

    -----------------触发器----------------

    触发器 分为 事前触发器 和事后触发器
    /*
    --创建触发器
    语法:
    CREATE TRIGGER 触发器的名称 ON 目标的名称
     FOR 针对表的哪一个操作,如:INSERT/UPDATE.. AS
    BEGIN
        --触发的事件     
        PRINT ‘水电费发生’
    END

    */

    -------使用NETBERDB----------
    USE NetBarDB
    go
    IF EXISTS (SELECT * FROM SYS.SYSOBJECTS WHERE NAME='TR_INSERT_RECORDINFO')
    DROP TRIGGER TR_INSERT_RECORDINFO
    GO
    --新建TRIGGER
    CREATE TRIGGER TR_INSERT_RECORDINFO
    ON RECORDINFO FOR INSERT AS
    BEGIN
        --定义变量用于存储会员号、卡号、电脑编号
        DECLARE @CARDID INT
        DECLARE @PCID INT
        DECLARE @CARDNUMBER CHAR(10)
        --从INSERTED表中获取插入的记录,包括电脑编号 卡号
        SELECT @PCID=PCID,@CARDID=CARDID FROM INSERTED
        --根据电脑编号修改使用的使用状态
        UPDATE PCINFO SET PCUSE =1 WHERE PCID=@PCID
        --根据编号查询会员号    
        select @PCId from cardInfo where cardId=@cardId
        --显示上机成功
        print '上机成功'
    END
    go
    set nocount on--不显示T-sql语句影响的行数
    declare @cardId int --声明卡的编号
    select @cardId = CardId from cardInfo where CardNumber='023-001'
    insert into recordInfo (cardId ,PCId ,beginTime ) values (@cardId ,1,GETDATE())

    select * from recordInfo
    select * from PCInfo

    ------------------delate 的触发器----------------------------------------------
    use NetBarDB
    go
    if exists (select*from sys.sysobjects where name ='tr_delect_recordInfo')
        drop trigger tr_delect_recordInfo
    go
    create trigger tr_delect_recordInfo
        on recordInfo for delete as  
        print '开始备份RecordInfo数据'
        if exists (select *from sys.sysobjects where name='backRecordInfo')
            insert into backRecordInfo select * from deleted
        else
            select * into backRecordInfo from deleted
        print 'backRecordInfo 表备份数据成功,备份数据为'
        select * from backRecordInfo
    go
    -----------------
    --c测试delete 触发器
    delete from recordInfo  

    select *from recordInfo

    -----------新建update-触发器---------------------
    use NetBarDB
    go
    if exists(select * from sys.sysaltfiles where name ='tr_update_recordInfo')
        drop trigger tr_update_recordInfo
    go
    create trigger tr_update_recordInfo
    on recordInfo for update as
        declare @reforePCId int
        declare @atforePCId int
        select  from deleted

  • 相关阅读:
    MOOC 浙江大学 面向对象程序设计-Java笔记(5)
    MOOC 浙江大学 面向对象程序设计-Java笔记(4)
    MOOC 浙江大学 面向对象程序设计-Java笔记(3)
    String类的学习
    MOOC 浙江大学 面向对象程序设计-Java笔记(2)
    MOOC 浙江大学 面向对象程序设计-Java 笔记(1)
    案例6-1.3 哥尼斯堡的“七桥问题” (25分)---C语言
    postfix&dovecot搭建邮件服务器
    Quaoar
    zico2靶机练习
  • 原文地址:https://www.cnblogs.com/cl1006/p/4331455.html
Copyright © 2011-2022 走看看