触发器和存储过程

原创 2006年06月12日 19:37:00

设有 Student(CNO,CNAME,SEX,AGE,SCORE)
表示学生的(学号、姓名、性别、年龄、学分)
SC(CNO,COURSE,Score)表示学生的(学号,课程,学分)实现下面触发器:
1。增加触发器:增加学分记录时,增加SCORE
2。删除触发器:删除学分记录时,减少SCORE
3。更新触发器:更新学分记录时,更改SCORE

CREATE TRIGGER AddScore ON [SC]
FOR INSERT
AS
begin
  declare @CNO1 int
  declaer @COURSE1 char
  declare @Score1 float
  select @CNO1=CNO,@COURSE1=COURSE,@Score1=Score from inserted
  update Student set SCORE=SCORE+@Score1 where
  CNO=@CNO1
end
go

insert into SC values(1,"hh",22)

CREATE TRIGGER DelScore ON [SC]
FOR DELETE
AS
begin
  declare @CNO1 int
  declaer @COURSE1 char
  declare @Score1 float
  select @CNO1=CNO,@COURSE1=COURSE,@Score1=Score from inserted
  update Student set SCORE=SCORE-@Score1 where
  CNO=@CNO1
end
go
s
delete into SC values(1,"hh",22)

CREATE TRIGGER DelScore ON [SC]
FOR DELETE
AS
begin
  declare @CNO1 int
  declaer @COURSE1 char
  declare @Score1 float
  select @CNO1=CNO,@COURSE1=COURSE,@Score1=Score from inserted
  update Student set SCORE=SCORE-@Score1 where
  CNO=@CNO1
select @CNO1=CNO,@COURSE1=COURSE,@Score1=Score from inserted
  update Student set SCORE=SCORE+@Score1 where
  CNO=@CNO1
end
go

update into SC values(1,"hh",22)


1)存储过程的练习
设有Student(CNO,CNAME,SEX,AGE)
设计一个存储过程 实现如下的查询
SEX=xx and AGE<=YY

CREATE PROCEDURE r
   @SEX1 char,
   @AGE1 int
AS
select * from Student
where SEX=@SEX1 and AGE<=@AGE1

GO


exec r '女',50

 

mariaDB存储过程与触发器

根据网上例子,自己修改后,如下: CREATE TABLE `ccs_customer` (   `customer_code` varchar(20) COLLATE utf8_bin NOT ...
  • youjiahui
  • youjiahui
  • 2015年07月28日 10:54
  • 2141

PostgreSQL9.3 存储过程与触发器入门

之前还真不知道postgreSQL可以构造函数,好吧,我是小白我怕谁呀。
  • u012514606
  • u012514606
  • 2014年10月13日 17:30
  • 1197

利用navicat创建存储过程、触发器和使用游标的简单实例

创建存储过程和触发器   1、建表 首先先建两张表(users表和number表),具体设计如下图:   2、存储过程 写一个存储过程,往users表中插入数据,创建过程如下:   代码如下:...
  • cqnuztq
  • cqnuztq
  • 2013年08月03日 21:34
  • 62522

sql server 存储过程,触发器,事务

尽管sql server 提供了使用方便的图形化用户界面,但是各种功能的实现基础是 transact-sql 语言. transact-sql语言直接来源于sql语言,因此也具有sql语言的几个...
  • yzr1183739890
  • yzr1183739890
  • 2015年12月13日 17:10
  • 2040

sqlite3触发器的使用

研究了一下osx下dock中应用的存储,位于~/Library/Application Support/Dock/下一个比较名字比较长的db文件中,之前简单的介绍过osx launchpad图标的删除...
  • dliyuedong
  • dliyuedong
  • 2014年10月29日 00:22
  • 10257

一次SQLSERVER触发器编写感悟

背景:BOSS需要我写一个工厂采集端到服务器端的数据同步触发器,数据库采用的是sqlserver2008 需求:将多台采集机的数据同步到服务器中,如果采集端数据库与服务器数据库连接失败则将数据保存到...
  • u013046841
  • u013046841
  • 2015年08月21日 02:34
  • 2893

Oracle触发器(trigger):一般用法

trigger和procedure,function类似,只不过它不能被显示调用,只能被某个事件触发然后oracle自动去调用.常用的一般是针对一个表或视图创建一个trigger,然后对表或视图做某些...
  • weiwenhp
  • weiwenhp
  • 2013年06月26日 17:46
  • 37897

oracle trigger(触发器)字段触发

说到oracle的触发器,一直以来都以为只能以表触发,今天有需求某个字段的值改变后触发一系列动作,原来想这个表改变再触发,后来想了一下,触发器本来很耗性能,如果这个表的每个字段更改都触发,这样做就造成...
  • diyyong
  • diyyong
  • 2014年01月21日 15:28
  • 9878

oracle数据库触发器(trigger)用法总结

http://yedward.net/?id=116   触发器的意思就是当我们对数据库对象(一般是表或视图)进行insert、update、delete操作的时候,这些操作会相应的触发一些事件的...
  • zhanzhib
  • zhanzhib
  • 2015年09月25日 10:12
  • 10184

数据库(SQL)之trigger(触发器)的使用以及视图(view)的基本实现

对于触发器,首先需要明确的是一下几点: trigger_name 必须给触发器命令,最多64个字符,建议用表的名字_触发器类型的缩写方法命名。如ttlsa_posts_bi(表ttlsa_posts,...
  • u013816144
  • u013816144
  • 2015年12月05日 12:18
  • 1153
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 触发器和存储过程
举报原因:
原因补充:

(最多只允许输入30个字)