16、SQL基础整理(触发器.方便备份)
触发器(方便备份)
本质上还是一个存储过程,只不过不是通过exec来调用执行,而是通过增删改数据库的操作来执行(可以操作视图)


全部禁用触发器
alter table teacher disable trigger all
全部开启触发器
alter table teacher enable trigger all
create trigger TR_student_delete--默认触发器名
on student --在哪个表上操作
instead of delete --为了对表做什么而建的,‘for’是在执行完外部语句之后用,‘instead of’是直接将要执行的语句替换为执行as里面的语句
as
delete from score where sno =108
delete from student where Sno = 108
go
delete from student where Sno = 108
select *from student
108行被删掉
alter trigger TR_student_delete--默认触发器名
on student --在哪个表上操作
for delete
as
insert into student values(108,'曾鹏','男',1905-05-22,95033)
go
delete from student where Sno = 108
select *from student
*曾华变为了曾鹏
动态触发
create trigger dongtaichufa
on teacher
instead of delete
as
begin
declare @tno varchar(20)
set @tno = (select tno from deleted)—-选择执行语句中的tno所在@tno
update teacher set tname='张三'where tno = @tno
end
go
delete from teacher where Tno='831'
deleted存储删除后的信息,inserted存放更改后的信息。
执行delete语句时的tno=触发器里面的tno,而不是@tno

create trigger TR_teacher_insert
on teacher
for insert
as
begin
declare @tno varchar(20)
set @tno=(select tno from inserted)
---delete from teacher where tno=@tno
declare @sex varchar(10)
set @sex =(select tsex from teacher where tno=@tno)
if(@sex='男')
update teacher set tsex='女'where tno =@tno
else
update teacher set tsex='男'where tno =@tno
end
go
insert into teacher values (800,'王五','男',1990-09-09,'教授','计算机系')

16、SQL基础整理(触发器.方便备份)的更多相关文章
- 必杀技———SQL基础整理系列(一)
SQL(Structured Query Language)——结构化查询语言 SQL语言的组成部分 数据定义语言 (DDL:Data Definition Language) 负责数据结构定义与数据 ...
- SQL基础-存储过程&触发器
一.存储过程 1.存储过程简介 存储过程: 一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,然后通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它. 存储过程的创建: ...
- pl/sql基础知识—触发器
n 触发器简单介绍 触发器是指隐含执行的存储过程,它不是由程序员或者是DBA来显式调用,而是因为某个操作引发执行的.当定义触发器时,必须要指定触法的事件和触发的操作,常用的触发事件包括insert, ...
- 11、SQL基础整理(变量)
变量 定义变量:declare @hello varchar(20) 赋值:set @hello = ‘你好’ select(结果框显示)/print(消息框显示) @hello *三行必须同时 ...
- 10、SQL基础整理(约束2)
约束 除主键约束.外键约束外 唯一约束(主键列.索引列的候选索引) 设计---右键---索引/键---需要修改的列----是唯一的----忽略重复键 代码方式: cid varchar (20) ...
- 8、SQL基础整理(约束)
约束 主键约束 防止在新增数据时出错,有约束性,起唯一标志的作用,在新增条目的时候防止不慎添加重复内容(不允许有null值) 1. 右键—设计—设置主键 2.在创建表格时设置 code int pr ...
- 5、SQL基础整理(字符串函数)
字符串函数 ASCII 返回字符串首字母的ascii编码 select ASCII('name') select ASCII(name) from xuesheng select *from xues ...
- 4、SQL基础整理(规范函数)
规范函数: 绝对值 select abs(-5) print abs(-5) 表中取绝对值的方法: select code,name,abs(chinese)as yuwen from xueshen ...
- 1、SQL基础整理(基本查询)
分离.附加.备份.还原 --去重 select distinct 列名from表名 --更新 update fenshu set name = ‘李四’where code = 9 --更改表名 sp ...
随机推荐
- 张艾迪(创始人):出现在世界224C之前的这些时间
出现在世界224C之前的这些时间 坐在大巴车上.用手塞住耳朵.繁杂的大巴车上.总会听见不喜欢听的声音.那时只有22.23岁的我.就像发明一些东西把所有不喜欢的声音都屏蔽掉.就像防火墙一样.那时候拥抱所 ...
- linux安装.run
chmod +x ./framework-3.6.0-linux-full.runsudo ./framework-3.6.0-linux-full.run
- SAP 质检使用非物料基本单位
今天也是奇葩了,物料A基本单位平方米,转化单位卷,销售和采购是按照平方米来采购,但是质检的需要按照平方米来做抽样检验.... 程序开发的: 修改该物料的工序基本单位为卷,再修改检验计划基本单位为卷 程 ...
- Collecting Bugs(POJ 2096)
Collecting Bugs Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 3064 Accepted: 1505 ...
- Java多线程-新特征-阻塞队列ArrayBlockingQueue
阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素 ...
- .net matlab 数据类型转换
http://wenku.baidu.com/link?url=HWqh7fna8d4UKz7FniwMzaqC5aW2M4wi5H-lWaRXDlxJlJsPilK_tjMDgRBnNiw7rjTm ...
- MongoDB replicaSet
MongoDB 的replication机制除了最普通的Master/Slave模式之外,更强大的就是其支持自动故障转移的Replica Sets模式了.相对于其问题多多的auto-sharding机 ...
- 前端必须掌握30个CSS3选择器
也许你已经学会了CSS的三个简单常用的选择器:#ID,.class,标签选择器,可是这些就足够了吗?随着CSS3的到来,作为前端开发者需要掌握下面三十个基本的选择器,这样才可以在平时开发中得心用手. ...
- linux 安装vpn
机器环境 centos Linux wdcp安装脚本和步骤第一步: wget http://www.huzs.net/soft/pptp_onekey/pptpd6.sh sh pptpd6.sh ...
- fetch VS AJAX
fetch('https://mywebsite.com/endpoint/', { method: 'POST', headers: { 'Accept': 'application/json', ...