触发器的概念:它是由事件驱动的,就像java中的监听,当某个事件发生了,就会做一些工作。

下面直接上干货,创建insert触发器、delete触发器、DDL触发器和如何查看触发器定义

1.创建三个表学生表、班级表、课程表

--在数据库中创建三个表学生表、班级表、课程表的结构create table student
( stu_id char(8) primary key,stu_name char(10),stu_sex char(2),stu_birthday smalldatetime,class_id char(6)
)
go
create table class
(  class_id char(6) primary key,class_name varchar(30),
class_num int,
)
create table course
( course_id char(3) primary key,course_name varchar(30),
)
go
create table score
( stu_id char(8),course_id char(3),score int check(score>=0 and score<=100)primary key(stu_id,course_id)
)
go

View Code

2.插入数据

--往表中插入数据(student,course,score)insert into student values('0601001','李玉','女','1987-05-06', '0601')insert into student values('0601002','鲁敏','女','1988-06-28', '0601')insert into student values('0601003','李小路','女','1987-01-08', '0601')insert into student values('0601004','鲁斌','男','1988-04-21', '0601')insert into student values('0601005','王宁静','女','1986-05-29', '0601')insert into student values('0601006','张明明','男','1987-02-24', '0601')insert into student values('0601007','刘晓玲','女','1988-12-21', '0601')insert into student values('0601008','周晓','男','1986-04-27', '0601')insert into student values('0601009','易国梁','男','1985-11-26', '0601')insert into student values('0601010','季风','男','1986-09-21', '0601')insert into class values('0501','计算机办公应用', 40)
insert into class values('0502','网络构建', 43)
insert into class values('0503','图形图像', 48)
insert into class values('0601','可视化', 41)
insert into class values('0602','数据库', 38)
insert into class values('0603','网络管理', 45)
insert into class values('0604','多媒体', 40)
insert into class values('0701','计算机办公应用', 39)
insert into class values('0702','WEB应用', 38)
insert into class values('0703','网络构建', 40)insert into course values('001','计算机应用基础')
insert into course values('002','关系数据基础')
insert into course values('003','程序设计基础')
insert into course values('004','数据结构')
insert into course values('005','网页设计')
insert into course values('006','网站设计')
insert into course values('007','SQL Server 2000关系数据库')
insert into course values('008','SQL Server 2000程序设计')
insert into course values('009','计算机网络')
insert into course values('010','Windows Server 配置')insert into score values('0601001','001',78)
insert into score values('0601002','001',88)
insert into score values('0601003','001',65)
insert into score values('0601004','001',76)
insert into score values('0601005','001',56)
insert into score values('0601006','001',87)
insert into score values('0601007','001',67)
insert into score values('0601008','001',95)
insert into score values('0601009','001',98)
insert into score values('0601010','001',45)insert into score values('0601001','002',48)
insert into score values('0601002','002',68)
insert into score values('0601003','002',95)
insert into score values('0601004','002',86)
insert into score values('0601005','002',76)
insert into score values('0601006','002',57)
insert into score values('0601007','002',77)
insert into score values('0601008','002',85)
insert into score values('0601009','002',98)
insert into score values('0601010','002',75)insert into score values('0601001','003',88)
insert into score values('0601002','003',78)
insert into score values('0601003','003',65)
insert into score values('0601004','003',56)
insert into score values('0601005','003',96)
insert into score values('0601006','003',87)
insert into score values('0601007','003',77)
insert into score values('0601008','003',65)
insert into score values('0601009','003',98)
insert into score values('0601010','003',75)insert into score values('0601001','004',74)
insert into score values('0601002','004',68)
insert into score values('0601003','004',95)
insert into score values('0601004','004',86)
insert into score values('0601005','004',76)
insert into score values('0601006','004',67)
insert into score values('0601007','004',77)
insert into score values('0601008','004',85)
insert into score values('0601009','004',98)
insert into score values('0601010','004',75)insert into score values('0601001','005',74)
insert into score values('0601002','005',68)
insert into score values('0601005','005',76)
insert into score values('0601008','005',85)
insert into score values('0601009','005',98)
insert into score values('0601010','005',75)insert into score values('0601002','006',88)
insert into score values('0601003','006',95)
insert into score values('0601006','006',77)
insert into score values('0601008','006',85)
insert into score values('0601010','006',55)insert into score values('0601001','007',84)
insert into score values('0601002','007',68)
insert into score values('0601003','007',95)insert into score values('0601004','008',86)
insert into score values('0601005','008',76)
insert into score values('0601006','008',67)insert into score values('0601007','009',67)
insert into score values('0601008','009',85)insert into score values('0601009','010',98)
insert into score values('0601010','010',75)

View Code

3.触发器实例

--1)在student上创建<strong>INSERT触发器</strong>stu_insert,要求在student表中插入记录时(要求每次只能插入一条记录),这个触发器都将更新class表中的class_nun列。并测试触发器stu_insert。
create trigger stu_insert
on student
for insert
as
update class set class_num=class_num + 1
where class_id=(select class_id from inserted)select * from class
--测试
insert into student values('0602011','文','女','1986-09-21', '0602')select * from class--2)在student上创建<strong>DELETE触发器</strong>stu_delete,要求在student表中删除记录时,这个触发器都将更新class表中的class_nun列。并测试触发器stu_delete。
create trigger stu_delete
on student
for delete
as
update class set class_num=class_num - 1
where class_id = (select class_id from deleted)--测试
delete from student where stu_id='0601001'--3)查看触发器相关信息:使用系统存储过程<strong>sp_help,sp_helptext查看触发器</strong>相关信息。
exec sp_help
exec sp_help stu_insert
exec sp_helptext stu_insert--4)对于下列触发器:
create trigger stu_update
on student
instead of update
as
print '修改学生表'
drop trigger stu_update
--执行语句
update student
set stu_id='0601003'
where stu_name='鲁斌'
--会怎么样?
--消息 2627,级别 14,状态 1,第 1 行
--违反了 PRIMARY KEY 约束 'PK__student__E53CAB217F60ED59'。不能在对象 'dbo.student' 中插入重复键。
--语句已终止。--5)创建<strong>DDL触发器</strong>,在当前数据库中不允许删除或修改表
create trigger data
on database
for drop_table, alter_table
as
print '不允许删除或修改表'
rollback

View Code

不要看他人高薪;且看闲时谁在拼

转载于:https://www.cnblogs.com/BoKeYuan259/p/10911517.html

sqlserver的触发器练习实例相关推荐

  1. 【无标mysql触发器trigger实例详解

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 目录 什么是触发器 创建 ...

  2. 数据库管理实务(四) 触发器的实例分析

     触发器的实例分析 1.触发器是一种特殊存储过程.一般存储过程通过调用执行,而触发器是通过事件触发而被执行.触发器是功能强大的工具,可以实施对服务器.数据库和表等对象的事件监控,实现更复杂的数据完整性 ...

  3. MySQL 触发器简单实例

    from:http://www.qianyunlai.com/blog/470.html ~~语法~~ CREATE TRIGGER <触发器名称>  --触发器必须有名字,最多64个字符 ...

  4. [转载]Oracle触发器用法实例详解

    本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用,也 ...

  5. oracle触发器函数,oracle 存储过程、函数和触发器用法实例详解

    本文实例讲述了oracle 存储过程.函数和触发器用法.分享给大家供大家参考,具体如下: 一.存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 创建存储过程 用CR ...

  6. 数据库中的触发器的实例讲解

    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程.        常见的触发器有三种:分别应用于Insert , ...

  7. oracle 触发器用法,Oracle触发器用法实例详解

    本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用,也 ...

  8. Sqlserver的触发器的简单使用

    1,触发器有两种 (1)After触发器(之后触发) 触发器有个好处:就是你之前有过什么操作他会将你的操作的数据信息完整的保存下来,比如你删过什么信息,如果用触发器,那么删除后就会显示两行受影响,那么 ...

  9. mysql存储、function、触发器等实例

    一.创建数据库&表 1 DROP DATABASE IF EXISTS security; 2 CREATE database security; 3 USE security; 4 CREA ...

最新文章

  1. skywalking链路追踪在微服务架构中的使用
  2. Android动画 详解(一 补间动画)
  3. 函数创建对象(2)原型模式
  4. 嵌入式linux字符设备驱动
  5. WPF Treeview第三层横向排列
  6. 计算机网络--接入互联网方式
  7. LOJ#6002. 「网络流 24 题」最小路径覆盖
  8. 通俗理解“Schmidt正交化”和“正交矩阵” 此博文包含图片 (2015-05-19 09:50:47) 施密特正交化在空间上是不断建立垂直于原次维空间的新向量的过程。 如图β2垂直于β1(1维)
  9. xcode cocos2dx 3.x mac工程 当assert(cond)触发断点,但cond却为0
  10. 为什么所有人都对 HTML、CSS 失望了?
  11. Windows 命令模式下删除驱动
  12. 设计模式的征途—4.抽象工厂(Abstract Factory)模式
  13. shopnc数据库 批量修改商品价格
  14. yolobile 道路损坏检测实战
  15. java text 格式化_java.text.Format
  16. [渝粤教育] 周口师范学院 大学计算机基础 参考 资料
  17. 二类电商积分商城,积分兑换商城源码,免登陆积分兑换商城系统
  18. 幼儿园案例经验迁移_【投石问路】让案例分析成为幼儿教师自我成长的阶梯
  19. 不会英语能学java_不会英语可以学java吗 不会英语怎么学java?
  20. 英文赞美句子,大家应该看看

热门文章

  1. reactjs组件的生命周期:创建时和更新时
  2. lombok pom.xml依赖
  3. hadoop 2.9.2 yarn配置公平调度器
  4. 【收藏】比Xshel更好用的 FinalShell
  5. ubuntu安装pip包管理器
  6. golang beego安装及入门示例
  7. linux 产生三位数的随机数
  8. k8s容器生命周期:指定启动、退出动作
  9. Ubuntu18.04完全卸载vscode
  10. Java线程池示例:并行计算200000以内的质数个数