这里只打算讲解四部分了,也就最简单、最常用的四部分。

1、触发器。

定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义了新的触发器,这里不提)

我为什么要使用触发器?比如,这么两个表:

Create Table Student( --学生表
StudentID int primary key, --学号
....
)

Create Table BorrowRecord( --学生借书记录表
BorrowRecord int identity(1,1), --流水号
StudentID int , --学号
BorrowDate datetime, --借出时间
ReturnDAte Datetime, --归还时间
...
)

用到的功能有:
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);
2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。
等等。

这时候可以用到触发器。对于1,创建一个Update触发器:

Create Trigger truStudent
On Student
for Update
As
if Update(StudentID)
begin

Update BorrowRecord
Set StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i
Where br.StudentID=d.StudentID

end

理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。
一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。

对于2,创建一个Delete触发器
Create trigger trdStudent
On Student
for Delete
As
Delete BorrowRecord
From BorrowRecord br , Delted d
Where br.StudentID=d.StudentID

从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。
这里我们只讲解最简单的触发器。复杂的容后说明。
事实上,我不鼓励使用触发器。触发器的初始设计思想,已经被“级联”所替代.

触发器-MSSQL常用操作相关推荐

  1. MSSQL常用操作及方法总结

    MSSQL常用操作及方法总结 1.在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启的解决办法: 到注册表中找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentCon ...

  2. DBA常用操作----sqlserver篇(下)

    引言 本篇文章中的还原操作是在有备份的基础上做的,如果还不知道如何备份的,欢迎大家翻阅上一篇文章,里面有详细的sqlserver备份教程. 文章链接:DBA常用操作----sqlserver篇(上) ...

  3. oracle 触发器 和 常用内置程序包

    --触发器和常用内置程序包 --author:shine --一.触发器: --1.触发器组成:由触发器语句,触发器限制,触发器操作三部分组成. --exp:1.1.1 create or repla ...

  4. jdby mysql_06_dljd_mysql数据库常用操作

    一.sql分类 1.数据查询语言(DQL Q:query):用于对数据库中的数据的检索. 基本结构:select from where  group by  having order by < ...

  5. 2008 r2彻底删除 server sql_mysql添加列、删除列,创建主键、备份等常用操作总结...

    一. 列常用操作 ① 添加新的一列test_column,并将其作为主键,FIRST将其放在表中第一行,auto_increement是自动增长 alter table test_table add ...

  6. oracle对象管理及使用实验报告,oracle对象管理常用操作(objects management)

    一.creating a table --创建表 create table computer_systems( computer_system_id  number(38, 0) not null, ...

  7. MYSQL常用操作 知识梳理

    MYSQL常用操作  知识梳理 ==================================增删改查======================================= 创建数据库 ...

  8. mysql添加列、删除列,创建主键、备份等常用操作总结

    mysql添加列.删除列,创建主键.备份等常用操作总结 一. 列常用操作 ① 添加新的一列test_column,并将其作为主键,FIRST将其放在表中第一行,auto_increement是自动增长 ...

  9. TensorFlow常用操作:代码示例

    1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...

最新文章

  1. python通过端口和协议查出服务名
  2. 开发:异常收集之 ibatis+Oracle 查询时: ORA-00911错误
  3. 没有暑假的Ada 要好好努力咯 C#继续
  4. 子线程中更新UI线程的三个方法
  5. [BZOJ1135][P3488][POI2009]LYZ[线段树+Hall定理]
  6. 突破技术管理,IT人中年危机变契机
  7. 无法显示添加端口对话框 服务器,服务器添加开放端口
  8. C语言学习笔记---一个简单的文件压缩示例
  9. 使用图片预览插件:vue-photo-preview
  10. MVC学习二:基础语法
  11. 谷歌免费GPU训练星际2AI好难?你需要份debug指南
  12. jgGrid pivot reload重新加载及刷新数据
  13. Android开发人员不得不收集的代码(持续更新中)
  14. inter无线网卡服务器版驱动,intel无线网卡驱动程序官方版
  15. 对称密钥和非对称密钥有什么区别,区别在哪里
  16. SQL中分组,排序,分组排序
  17. thinkphp6自定义日志驱动,增加显示全部请求信息
  18. 如何看linux网络慢,Linux下网速慢的问题
  19. 六个步骤教你学会用ZBrush绘制头部模型
  20. 蓝色实景旅游产品手册PPT模板

热门文章

  1. C++ 向上转型初步01
  2. html在线编辑器 asp.net,ASP.NET网站使用Kindeditor富文本编辑器配置步骤
  3. 【C++】rand函数的基本使用
  4. vivado软件如何查看内部器件的仿真信号
  5. 23. 合并K个排序链表
  6. 【C++ Primer | 15】面试问题
  7. 第五周课程总结实验报告(三)
  8. 字符串驻留机制截图?#注意回顾字符串的深浅拷贝小数据池那节
  9. 自动登录360,百度
  10. C++primer plus第六版课后编程题答案8.3(正解)