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

    触发器:
    是一个特殊的存储过程;
    通过增删改的动作来触发执行,没有参数,没有返回值;

    create trigger Insert_Student --命名规范
    on student --针对于哪一个表
    for insert --针对于哪一个动作来触发

    -- onclick = "show()"

    as
    触发执行的代码段
    go

    ----------------------------------------------------
    create trigger Delete_Info
    on info
    instead of delete
    as
    declare @c varchar(20)
    select @c = code from deleted

    delete from work where infocode=@c
    delete from family where infocode=@c
    delete from info where code=@c
    go


    create trigger Delete_Nation
    on nation
    for delete
    as

    go


    1.for的意思是在动作执行之后触发
    2.instead of delete 的意思是删除之前引发,可以理解为替代,写了这个之后,写的执行代码就没有用了,就被触发器的代码覆盖了

    触发器常用的为级联删除:
    create trigger delete_student
    on student
    instead of delete
    as
    --如果要删除student表数据,那么需要级联删除
    declare @sno varchar(20);
    set @sno = sno from deleted --deleted固定格式,为删除执行所能删除的数据,并没有执行删除,而是把他们显示出来,在这获得要删除的数据的sno,然后先删除其他表中此sno的数据
    delete from score where sno = @sno;
    delete from student where sno = @sno;
    go

  • 相关阅读:
    KVC的取值和赋值
    OC中属性的内存管理
    mysql的通信协议
    Proactor模式&Reactor模式详解
    Linux异步IO学习
    Redis 分布式锁的实现原理
    redis过期键
    智能指针
    std::unique_lock与std::lock_guard
    手撕代码
  • 原文地址:https://www.cnblogs.com/light3857/p/5745800.html
Copyright © 2011-2022 走看看