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

    --禁用所有触发器的语句
    alter table student disable trigger all
    --启用所有触发器的语句
    alter table student enable trigger all
    --如果知道触发器的名字,可以将all改成所要关闭或启用的触发器的名称


    create trigger TR_student_Delete --创建一个delete触发器
    on student --对于那一个表的
    instead of delete --替换掉delete 语句
    as
    insert into student values('成龙','男','三班',1007,1008,1009)
    go
    --执行一个delete语句,针对student表
    delete from student where code =4
    --执行上面语句的时候触发了TR_student_Delete触发器
    --因为里面是instead of 是替换掉我执行的这个delete语句
    --所以,code为4的数据没有被删除
    --并且添加进去了一行新的数据

    create trigger TR_student_Delete2 --创建一个delete触发器
    on student --对于那一个表的
    for delete --在执行了外部的delete语句后执行触发器里面的语句
    as --与after相同
    insert into student values('全智贤','女','二班',1004,1005,1006)
    go
    --执行delete语句
    delete from student where code =30
    --执行delete语句在student表上的时候,发现有触发器
    --查看到是for或after
    --首先执行完要执行的这个语句
    --然后执行触发器里面的语句


    --执行删除一条数据,
    --用deleted来表示被删除的那条数据,可以从中获取值
    create trigger TR_Teacher_delete
    on teacher
    instead of delete
    as
    declare @code int
    select @code =(select code from deleted)
    update teacher set name ='刘德华' where code = @code
    go
    --执行
    delete from teacher where code = 1005
    --上面的语句是应该在触发器前执行,所以用deleted表示这条数据
    --可以在触发器中获取这行数据里面的任何列
    --可以直接拿去使用


    --insert添加一条数据,inserted表示新添加的数据,
    --从中获取教师编号,
    --并且根据教师编号来查看是lesson是音乐么,如果是音乐变成语文。
    create trigger TR_teacher_Insert
    on teacher
    for insert
    as
    declare @code int
    select @code = (select code from inserted)
    declare @lesson char(10)
    select @lesson = lesson from teacher where code =@code
    if @lesson='音乐'
    update teacher set lesson ='语文' where code =@code
    go
    --执行
    insert into teacher values('谭咏麟','音乐',55,'1950-04-05')

    --对于INSERT 操作,inserted保留新增的记录,deleted无记录
    --对于DELETE 操作,inserted无记录,deleted保留被删除的记录
    --对于UPDATE操作,inserted保留修改后的记录,deleted保留修改前的记录

  • 相关阅读:
    文本框只能输入数字
    Excel 文件读取
    C# 时间格式
    window 锁屏
    窗体程序 (控件随窗体变化而变化)
    dataGridView操作数据(增加 读取 绑定 获取选择的单元格 选中整行单元格时颜色变换 更新数据 锁定列的位置 添加行 列头的方法)
    集合
    登录窗体关闭 show() showDialog()
    查询字符串中字母出现的个数
    pytorch F.cross_entropy(x,y)理解
  • 原文地址:https://www.cnblogs.com/dulovexin/p/4995012.html
Copyright © 2011-2022 走看看