1. 创建一个触发器,当一本书被还回时,从LOAN表中删除相应的借阅记录,将该学生借阅这本书记录添加到LoadHist表中;并检查是否有用户在等待预约这本书,如有则将这本书的借阅状况修改为 已经预约;按照预约的日期先后,先向预约在前的用户发送信息,并将状态改为T。

2. 创建一个触发器,当借书成功,则检索是否有这个用户的预约该书的记录,如果有,则删除相应的预约记录。

3. 创建一个触发器,当读者还书时,如果超期罚款, 通过触发器在收费表中添加一条收费记录。

1.create trigger umgsai ON
loan --在Goods表中创建触发器
for delete
As --事件触发后所要做的事情
begin
declare @借阅证号 char(20);
declare @借阅证号1 char(20)
declare @书号 char(20);
declare @借阅日期 char(20);
declare @归还日期 char(20);
declare @ISBN char(20); select @借阅证号=L.借阅证号 from deleted L;
select @书号=L.书号 from deleted L;
select @借阅日期=L.借阅日期 from deleted L;
select @ISBN =(select ISBN from books where 书号='@书号')
set @归还日期=getdate()
begin
insert into loanhist (借阅证号,书号,借阅日期,归还日期)values(@借阅证号,@书号,@借阅日期,@归还日期);
select @借阅证号1=(select top 1 借阅证号 from reservation where ISBN=@ISBN )
update reservation set 状态='T' where 借阅证号=@借阅证号1
end;
end; 2. create trigger umgsai1 ON
loan --在Goods表中创建触发器
for insert
As --事件触发后所要做的事情
begin
declare @借阅证号 char(20);
declare @书号 char(20);
declare @ISBN char(20);
select @借阅证号=L.借阅证号 from inserted L select @书号=L.书号 from inserted L
select @ISBN=(select ISBN from books where 书号=@书号)
begin
delete from reservation where 借阅证号=@借阅证号 and ISBN= @ISBN
end;
end;

SQL触发器的更多相关文章

  1. SQL触发器实例讲解

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

  2. SQL触发器实例

    SQL触发器实例讲解(本文是来自百度文库) 备注:本人建了一个站特价汇,我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分 ...

  3. SQL触发器中的deleted表和inserted表

    SQL触发器中的deleted表和inserted表 在触发器语句中用两个特殊的表一个是deleted表和inserted.它们是通过触发器操作自动创建驻留在内存中的临时表. 描述: Deleted表 ...

  4. SQL 触发器(学生,课程表,选修表)

    SQL 触发器(学生,课程表,选修表) 触发器是一种特殊类型的存储过程,它不由用户通过命令来执行,而是在用户对表执行了插入,删除或修改表中数据等操作时激活执行.可以这样形容:存储过程像一个遥控炸弹,我 ...

  5. Oracle数据库之PL/SQL触发器

    Oracle数据库之PL/SQL触发器 1. 介绍 触发器(trigger)是数据库提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是 ...

  6. PB+MS SQL+触发器必须指出

    PB+MS SQL+触发器必须指出: 若触发器存在两笔以上的返回值,比方两条update 语句,被误判为数据有改变.存盘不成功. 提示: Row changed between retrieve an ...

  7. SQL触发器实例(下)

    基本语法: Create Trigger [TriggerName] ON [TableName] FOR [Insert][,Delete][,Update] AS --触发器要执行的操作语句. G ...

  8. SQL 触发器-如何查看当前数据库中有哪些触发器

    在查询分析器中运行: use 数据库名goselect * from sysobjects where xtype='TR' sysobjects 保存着数据库的对象,其中 xtype 为 TR 的记 ...

  9. 【SQL Server】SQL触发器经验详解

    [SQL Server]SQL触发器经验详解 | 浏览: 4314 | 更新: 2013-01-07 15:33 25 11 全文阅读分步阅读   加入杂志 步骤 1 2 3 4 5 6 7 8   ...

  10. SQL触发器 inset自学经验

    本人建立了一个特价汇网站,想要记录每个商品的点击量和整个网站的访问量,于是就想用sql 触发器来实现 drop trigger tgr_cg_records_update_column create ...

随机推荐

  1. OpenGL 4.3配置教程

    OpenGL 4.3配置教程 下载开发包 需要下载的开发包主要包含如下几个组件:freeglut+glew+ OpenGL.Development.Cookbook+源码+GLM+SOIL. Open ...

  2. EBS中使用java进行 JavaConcurrentProgram 请求获取参数

    public class MainTest implements JavaConcurrentProgram { //实现interface中的runProgram方法 public void run ...

  3. JS自定义事件之选项卡

    自定义事件是一种处理与DOM产生交互的代码逻辑片段之间耦合的很好的架构方法. 一个简单的jQuery插件——选项卡 让ul列表来响应点击事件.当用户点击一个列表项时,给这个列表项添加一个名为activ ...

  4. iBatis.Net(C#)数据库查询

    引用请注明http://www.cnblogs.com/13590/archive/2013/03/14/2958735.html  摘要:查询是数据库SQL语言的核心,本文介绍了通过iBatis.N ...

  5. 与Python Falling In Love_Python跨台阶(环境搭建)

    Python--环境搭建 首先需要下载python安装包,官网下载地址:https://www.python.org/downloads/ 下载完直接点击安装... 安装完后就可以配置环境变量咯^_^ ...

  6. jsoup抓取借书记录

    package tushuguan; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; ...

  7. AngularJS开发指南9:AngularJS作用域的详解

    AngularJS作用域是一个指向应用模型的对象.它是表达式的执行环境.作用域有层次结构,这个层次和相应的DOM几乎是一样的.作用域能监控表达式和传递事件. 作用域的特点 作用域提供APIs($wat ...

  8. BootStrap网格布局

    如何使用BootStrap样式 BootStrap与其他的开源库类似,直接引用它的css样式文件就可以使用了. <link rel="stylesheet" href=&qu ...

  9. Win7 下以管理员身份运行批处理文件,切换JDK版本

    Win7下 切换JDK的批处理命令 1. 批处理文件(必须以管理员身份执行)内容如下 @echo off rem --- Base Config 配置JDK的安装目录 --- :init set JA ...

  10. [团队项目]Scrum 项目1.0 (演说视频)NABCD

    1.确定选题. 应用NABCD模型,分析你们初步选定的项目,充分说明你们选题的理由. 录制为演说视频,上传到视频网站,并把链接发到团队博客上. 截止日期:2016.5.6日晚10点 2.SCRUM 流 ...