触发器

步骤:打开选用的‘数据库’,然后打开‘可编程性’,就可以找到‘数据库触发器’。

是一种存储过程,只是不通过  exec 调用执行!

通过增删改语句来引发执行!

在有主外键关联时,可以把关联的信息都修改

(有主外键关联时,要先删除外键才可以删主键)

create table new

(code int ,

shu  int)

go

insert into new values (1,1)

insert into new values (2,3)

insert into new values (3,4)

insert into new values (4,5)

insert into new values (5,6)

select *from new

drop table new

----------------------------------------------------

create trigger TR_new_Delete  --创建并命名触发器

on new --作用于new

for delete--delete/insert/update   --先执行删除语句,再进行插入语句

as

insert into new values (11,11)--占据删除数据的位置

insert into new values (3,4)--在新插入数据的位置

go 到此,触发器完成。

 

delete from new where code=3

--引发触发器语句,只能是增删改

select *from new

for/after  先运行go再运行as

--先go删除了code=3,再as添加了code=11,code=3

-- drop trigger TR_new_Delete

--------------------------------------------------

create trigger TR_new_Delete

on new

instead of delete

as

insert into new values (11,11)

go

delete from new where code=2

select * from new

--此时不执行删除语句,只执行插入语句!

instead of只运行as的语句

 

 

----------------------------------------------

alter  trigger dongtaichufa

on teacher

instead of delete

as

begin

declare @Tno varchar(20)

set @Tno=(select Tno from deleted)

--deleted 表示虚拟表(go后面的delete 语句)

update teacher set Tname='递归'where Tno=@Tno

end

go

delete  from teacher where Tno='856'

select *from teacher

---------------------------------------------

--触发器可以处理视图,(用途:1.删除数据时备份2.操作视图,即有主外键关联时)

create  trigger inserttt

on teacher

for  insert

as

declare @Tno varchar(19)

set @Tno=(select Tno from inserted)

 update teacher set Tsex=''where Tno=@Tno  --修改表内容

go

insert into teacher values

('789','集合','女','1990-09-09','教授','生物系')

select *from teacher

----------------------------------------------

alter table teacher disable trigger all--(或触发器名字)禁用全部

alter table teacher enable  trigger all--(或触发器名字)启用全部

#########################

事物:

就是把语句打包执行,只要发生错误,全部执行失败!

begin tran     --开始‘事务’

--一般对增删改使用事物!查询一般不用事物

insert into student values ('910','王五','男','1999-09-09','95033')

if @@ERROR >0--一旦发生错误,执行下面的返回!

goto TranRollback

insert into course values ('3-999','语文','804')

if @@ERROR >0

goto TranRollback

insert into  score  values ('191','3-105',99)

 if @@ERROR >0

  begin

   TranRollback:  rollback tran --返回tran 开始!

  end

 else

  begin

   commit tran--确认提交tran 执行语句内容!

  end

 

转载于:https://www.cnblogs.com/huaze/p/4089873.html

数据库中触发器、事务相关推荐

  1. 数据库中触发器的作用是什么?

    数据库中触发器的作用是什么? 什么是触发器 触发器是一种特殊的存储过程,只能由事件驱动调用,而无法直接调用. 触发器有什么用 当对数据库的相关对象(数据库.表.视图)进行某些特定的操作时,数据库会自动 ...

  2. MySQL数据库中默认事务隔离级别是?

    MySQL数据库中默认事务隔离级别是? 事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到 ...

  3. SQL FILESTREAM数据库中的事务日志备份

    In the continuation of our SQL FILESTREAM article series, we'll be covering transaction log backups ...

  4. MySQL数据库中的事务(四大特性)

    1. 事务的介绍 事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元. 2. 事务的四大特性 原子性(Atomicity) 一 ...

  5. 数据库中触发器的作用,规则和限制

    触发器--看到这个名字总是会想到数电中学过的触发器,有输入端和输出端,根据电平的高低来触发. 数据库中的触发器是个特殊的存储过程,主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直 ...

  6. 数据库中的事务是什么?

    事务(transaction)是作为一个单元的一组有序的数据库操作.如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功.如果所有操作完成,事务则提交,其修改将作用于所有其他数 ...

  7. 听说Mysql你很豪横?-------------深入解析mysql数据库中的事务!

    文章目录 一.数据库的三大范式 二.事务(重要) 1.事务的重要性 2.什么是事务 3.事务有什么特点(ACID四个特点) 4.怎么使用事务呢? (1)如何存档 (2)如何回档 (3)如何删档 (4) ...

  8. MYSQL数据库中触发器禁用、启用、查询

    #查询触发器 SELECT * FROM information_schema.`TRIGGERS`#禁用 alter table table_name disable trigger tgr_tab ...

  9. 同时更改一条数据_数据库中的引擎、事务、锁、MVCC(二)

    二.事务 介绍锁之前,咱们先介绍一下 什么叫做事务. 事务就是一组对数据库的一系列的操作,要么同时成功,要么同时失败. 1.事务的特性(ACID): 原子性:事务是整个操作,不可分割,要么都成功,要么 ...

最新文章

  1. idea本地跑如何看gc日志_不可思议,竟然还有人不会查看GC垃圾回收日志?
  2. 为什么使用pickle模块
  3. 学业水平考试b能上985吗_211 和985 的大学是不是要求学业水平考试全部是A
  4. Mac OS 如何更改文件的默认打开方式
  5. 爬虫--BeautifulSoup使用
  6. 浅析局域网聊天软件的能力
  7. 服务器不能用pe安装win7系统安装,WinPE无法安装win7系统的完美解决方案
  8. OPNsense用户手册-用户界面
  9. mysql大于小于索引问题
  10. word如何将选择题按首字母拼音排序
  11. 怎样在计算机中找小键盘,笔记本怎么关小键盘【方法步骤】
  12. 抓紧收藏,9大短视频自媒体工具,帮你快速月入过万,不真人出镜
  13. Linux中计算特定CPU使用率
  14. Ceph对象存储的使用
  15. 201712-4 行车路线 ccf
  16. CSS3: The missing manual 《css3秘笈》笔记+布局、设计优秀资源整理
  17. 最大熵模型(maximum entropy model)
  18. 多线程就一定比单线程快吗?
  19. 如何用最短的时间理解一项数字技术?推荐这7本最新的白皮书(大数据、云原生、区块链、联邦学习等,附下载)...
  20. matlab word报告,MATLAB 实验报告

热门文章

  1. 服务器用户连接数设置
  2. [仙吕·一半儿] 题画《翠林和鸣》
  3. 例5-17和例5-18
  4. Java注解--Java深度历险(转)
  5. [转] 初识Firebug(HTML查看和编辑、Javascript控制台、网络状况监视器)
  6. 配置Git服務器和Windows客戶端
  7. PXC 部署前置检查
  8. NVelocity的宏使用
  9. 20个jQuery 图片及多媒体画廊插件
  10. android ColorDrawable的使用