文档库 最新最全的文档下载
当前位置:文档库 › 触发器学习资料

触发器学习资料

触发器学习资料
触发器学习资料

触发器

触发器是SQL Server提供给程序员和数据库分析员确保数据完整性的一种方法。这些方法对于那些经常被大量的不同应用程序访问的数据库相当有用,因为它们使数据库增强了应用规则,而应用规则是依赖于应用软件的。

1.SQL Server触发器的概念

SQL Server有效地管理信息的能力来源于它在系统中控制数据的能力。存储过程的建立,使用户能够在服务器上执行逻辑,通过规则和默认值去帮助数据库更进一步地管理信息。SQL Server在信息被写入数据库之前确认规则和默认值。这对于信息是一种“预过滤器”,并且能基于数据项控制数据库活动的作用阻止数据项的活动。

触发器是在数据更新后执行的“后置过滤器”,并且 SOL Server已经确认了这些规则、默认值等。

触发器是 SQL Server执行的特殊类型的存储过程,它发生在对于一个给定表的插入、修改或删除操作执行后。由于触发器是在操作有效执行后才被运行,在修改中它们代表“最后动作”。假如触发器导致的一个请求失败的话,SOL Server 将拒绝信息更新,并且对那些倾向于事务处理的应用程序返回一个错误消息。触发器最普遍的应用是实施数据库中的商务规则,当然在维持引用完整性方面,外键要比触发器更快,但触发器能够维持那些外键所不能处理的复杂关系。

触发器不会明显影响服务器的性能。它们经常被用于增强那些在其他的表和行上进行很多级联操作的应用程序的功能。

2创建触发器

创建触发器的用户必须是该数据库的拥有者,当添加一个触发器到列、行或表的时候,就会改变怎样使表能够被访问,怎样使其他对象能够与之关联等。因此,实际上正在改变数据库的模式。当然这种类型的操作为数据库拥有者所保留,以便防止有人无意中修改了系统的布局格式。

创建触发器相当于说明一个存储过程,并且它有相似的语法。

⑴创建触发器的语法:

CREATE TRIGGER trigger_name

ON table

[WITH ENCRYPTION]

{

{FOR {[DELETE][,][INSERT][,][UPDATE]}

[WITH APPEND]

[NOT FOR REPLICATION]

AS

Sql_statement […n]

}

│{FOR {[INSERT][,][UPDATE]}

[WITH APPEND]

[NOT FOR REPLICATION]

AS

{ IF UPDATE(column)

[{AND│OR}UPDATE(column)]

[…n]

│IF (COLUMNS_UPDATED()bitwise_operator)updated_bitmask) {comparison_operator}column_bitmask[…n]

}

sql_statement[…n]

}

}

上述语句中的trigger_name为所定义的触发器名称;关键字

INSERT,UPDATE ,DELETE 定义了触发器的作用域,后者决定了启动触发器的操作; Sql_statement为包含在触发器中的任何合法的SQL语句。

⑵用SQL Enterprise Manager来创建触发器

在Windows开始菜单中执行“程序|Microsoft SQL Server 7.0|Enterprise Manager”命令,进入Enterprise Manager界面。在Enterprise Manager中展开SQL Server Group,再展开Database项,选择要创建触发器的数据库(如PROJECT),再选中要创建触发器的表(如J),按右键,在弹出的菜单上选择All Tasks命令,再选Manage Triggers命令,如图33 所示,弹出一个“Trigger pro perties…”窗口,如图34 所示,在该窗口中输入触发器代码。

3.Inserted和deleted 表

当触发器被执行时,SQL Server创建一个或两个临时表(Inserted或者deleted

表)。当一个记录插入到表中时,相应的插入触发器创建一个inserted表,该表镜像该触发器相连接的表的列结构。例如,当用户在J表中插入一行时,J表的触发器使用J表的列结构创建inserted表。对于插入到J表的每一行,相应地在inserted 表中也包括该行。

deleted表也镜象触发器相连接的表的列结构。当执行一条DELETE语句时从表中删除的每一行都包含在删除触发器内的deleted表中。

图16.33 选择Manage Triggers

图16.34 Triggers Properties 窗口

被UPDA TE语句触发的触发器创建两个表inserted和deleted表,这两个表和它们相连接的表有相同的列结构。deleted 和inserted表分别包含相连接表中数据的“前后”快照。例如,假设用户执行下面的语句:

UPDA TE J SET JNO=’J10’ WHERE JNO=’S8’

当该语句被执行时,J表中的更新触发器被触发。在触发器的inserted和deleted 表中,该语句所改变的每一数据行都在这两个表中包含一行。deleted表中行的数据值是执行UPDA TE语句之前的J表中行的数据值;inserted表中则是执行UPDA TE语句后的J表中行的数据值。

4.Update()函数

触发器降低了SQL Server事务的性能并且在事务执行时保持锁处于打开状态。如果用户的触发器逻辑只有当某些特定列改变时才需要运行,用户就应该检测这种情况的出现。update()函数可以帮助用户进行检测。

Update()函数只在插入和更新触发器中可用,它确定用户传递给它的列是否已经被引起触发器激活的insert或update语句所作用。

例如在表J上定义更新触发器,使其阻止JNO列被执行,触发器定义如下:CREATE TRIGGER TRJ_Upd ON J

FOR UPDATE

AS

IF update(JNO)

ROLLBACK TRANSACTION

RETURN

5.触发器检查

用户可以使用触发器检查事务。

例如,创建一个名为TRJ的触发器,如图35所示。该触发器的功能是:将删除的工程项目数据转移到存档工程表JBACK中(假设已建立了与工程表J结构相同的存档表JBACK),,我们可以如下定义触发器:

CREATE TRIGGER TRJ ON J

FOR DELETE

AS

INSERT JBACK

SELECT JNO,JNAME,JCITY,BALANCE

FROM deleted

又如:创建一个名为TRSPJ_UPDATE_PRICE的触发器,使其具有如下功能:在修改供应表(SPJ)的单价时,要求修改后的单价一定要比原来的单价低。,我们可以如下定义触发器:

CREATE TRIGGER TRSPJ_UPDATE_PRICE ON SPJ

FOR UPDATE

AS IF(SELECT COUNT(*)

FROM deleted,inserted

WHERE deleted.price>=inserted.price)=0

ROLLBACK TRANSACTION

图16 .35 触发器TRJ代码

6、instead of 和after 触发器的区别

主要包括定义和应用范围条件,操作执行时机;

AFTER 触发器(也叫“FOR”触发器)会在触发insert、update 或是delect 动作之后执行。例如,一个Employees 表上的AFTER 触发器会在在Employee 表上执行一条update 语句后激活。因此,AFTER 触发器只有在已插入一行或是多行和所有约束已被处理且通过后才触发。

INSTEAD OF 触发器和AFTER 触发器有本质上的不同,因为INSTEAD OF 触发器代替触发动作进行激发。就拿同样的例子来说,如果在Emplyees 表上有一个INSTEAD OF UPDA TE 触发器和在这个表上执行一条UPDA TE 语句,结果是这条UPDA TE 语句并不会改变Employee 表中的任何一行。相反,这条UPDA TE 语句只有是为了踢离INSTEAD OF UPDA TE 触发器,这个触发器可能会,也可能不会改变Employees 表中的数据。

因此,怎么决定在合适的时间和位置放置INSTEAD OF 触发器呢?有几个关键的因素在做决定是值得考虑的。AFTER 触发器多用在动作必须在表中数据发生改变之后才执行后情情况。比如,AFTER 触发器可以用于将对数据作任何变动的日志记录在一个相对独立的审计表中。INTEAD OF 触发器也能做同样的工作。但是INSTEAD OF 触发器在这个情况下的效率比较低,因为更新动作只能在将它发生的动作准确地记录在审计表之后才允许执行。

一般来说,只要不影响数据的修改,AFTER 触发器比INSTEAD

OF 触发器更有效率。在对数据进行计算或是对数据的修改作为一个整体提交或是作为一个整体回退的情况下,AFTER 触发器也是一个很好的选择。例如,存在这样一条规则:对在Products 表的产品价格的变动超过30%的必须回退。AFTER 触发器能很漂亮地完成这个工作,它利用已插入同已删除的表中的产品价格作比较,然后在有必要的时回滚事务。这些都是AFTER 触发器的理想条件,但有时INSTEAD OF会更好些。

INSTEAD OF 触发器有一个很大的特点——就是它允许你在某个表或视图上用多个复杂的查询操作来代替单一的查询。跟AFTER 触发器只能对表起作用不同,INSTEAD OF 触发器可以同时对表和视图起作用。

存储过程与触发器实验

第一章存储过程与触发器实验 实验目的 1.理解存储过程的工作原理和作用。 2.掌握存储过程设置和程序设计过程。 3.理解触发器的工作原理和作用。 4.掌握触发器编写方法。 实验环境 采用IBM DB2或Sybase数据库管理系统作为实验平台。其中,DB2可以采用DB2 Express-C或DB2 V8 Enterprise。 实验完成人:李肇臻,谢锦 实验内容 一、存储过程实验 1.针对下面2个完整性约束条件,建立存储过程,实现当数据导入或更新时,可以自动修改拥塞率、半速率话务量比例 (1)拥塞率=拥塞数量/呼叫数量 (2)半速率话务量比例=半速率话务量/全速率话务量 在DB2CMD中运行,win7用管理员权限。 create procedure M() language SQL begin update CALLDATA set "callcongs"="congsnum"/"callnum" where "congsnum"<>0 and "callnum"<>0; update CALLDATA set "rate"="thtraff"/"traff" where "thtraff"<>0 and "traff"<>0; end @ 2.将存储过程添加到数据库服务器上

3.在客户端编写调用存储过程的主程序 4.运行客户端程序,调用存储过程,观察存储过程执行过程和数据更新情况;调用就用db2 CALL M() 二、触发器实验 1. 针对下列约束条件,分别建立1个触发器: 1)每个小区/扇区最多占用14个TCH频点,合法频点范围在[1,60]之间。当向小区中新加入频点时,如果小区中现有频点数目已达到14个,则用新加入的频点替换现有频点中的最小频点;当修改或新加入频点时,如果发现频点不在合法范围内,则输出提示信息,并拒绝该操作。 create trigger first_1 after insert on FREQUENCY

数据库实验报告(7)-触发器

桂林航天工业学院学生实验报告 实验七 实验名称触发器实验日期2019.11.12 实验目的 1.了解触发器的基本原理,掌握创建触发器的方法。 2.掌握修改和删除触发器的方法,能够设计简单的触发器。 实验内容触发器 实验方法及步骤 1、创建一个触发器InsStud,当向student表插入一条记录时,同时把该记录插入到关系student2。 CREATE TRIGGER InsStud on student FOR INSERT AS insert into student2 select*from inserted 2、向student表中插入一条记录('201215130','张三','男',20,'CS'),查看student和student2表中记录的变化是什么? student和student2表中都能插入('201215130','张三','男',20,'CS')这条记录 insert student values('201215130','张三','男',20,'CS'); select*from student select*from student2 3、创建一个触发器DelStud,当向student表删除一条记录时,同时把该记录从student2表删除掉。

CREATE TRIGGER DelStud on student FOR delete AS delete student2 select*from deleted 4、删除student表中的sno为201215130的元组,同时查看student2表中元组的变化是什么? student和student2表中都能删除('201215130','张三','男',20,'CS')这条记录。 delete student where sno='201215130' select*from student select*from student2 5、为course表创建一个名为del_rollback_tr的DELETE触发器,该触发器的作用是禁止删除course表中的记录。 CREATE TRIGGER del_rollback_tr on course FOR delete AS if (exists(select*from deleted)) rollback insert course values('8','张','5',2); delete course where cno='8'

第5章锁存器和触发器

锁存器和触发器 1.分析图1所示电路的功能,列出功能表。 图1 2.若图2 a所示电路的初始状态为Q = 1,E、S、R端的输入信号如图2 b 所示,试画出相应Q和Q端的波形。 S G3 Q Q E R S (a) (b) 图2 3.试用1片八D锁存器74HC373设计一个能锁存两位BCD码信号的锁存电路。假定三态输出使能端OE=0,锁存器原输出Q7Q6Q5Q4Q3Q2Q1Q0=10010100(94D),而输入为D7D6D5D4D3D2D1D0=10010101(95D),画出锁存器锁存新数据前、后使能端LE应输入的波形和相应Q 的波形。 4.触发器的逻辑电路如图4所示,确定其应属于何种电路结构的触发器。

9 Q Q 图4 5.上升沿触发和下降沿触发的D触发器逻辑符号及时钟信号CP (CP)和D 的波形如图5所示。分别画出它们的Q端波形。设触发器的初始状态为0。 D D D CP(CP) 图5 6.设下降沿触发的JK触发器初始状态为0,CP、J、K信号如图6所示,试画出触发器Q端的输出波形。 J K 图6 7.逻辑电路如图7所示,试画出在CP作用下,φ0、φ1、φ2和φ3的波形。

图7 8.电路如图 8所示,设各触发器的初态为 0,画出在CP脉冲作用下Q端波 形。 Q1 Q1 3 Q3 4 Q4 CP (a) (b) (c) (d) 图8 9.逻辑电路如图9所示,已知CP和X 的波形,试画出Q1和Q2的波形。触发 器的初始状态均为0。 X 1 X 图9 10.两相脉冲产生电路如图10所示,试画出在CP作用下φ1、φ2的波形,并 说明φ1和φ2的时间关系。各触发器的初始状态为0。

单稳态触发器

单稳态触发器特点: 电路有一个稳态、一个暂稳态。 在外来触发信号作用下,电路由稳态翻转到暂稳态。 暂稳态不能长久保持,由于电路中RC延时环节的作用,经过一段时间后,电路会自动返回到稳态。暂稳态的持续时间取决于RC电路的参数值。 单稳态触发器的这些特点被广泛地应用于脉冲波形的变换与延时中。 一、门电路组成的微分型单稳态触发器 1. 电路组成及工作原理 微分型单稳态触发器可由与非门或或非门电路构成,如下图。与基本RS触发器不同, (a)由与非门构成的微分型单稳态触发器 (b)由或非门构成的微分型单稳态触发 图6.7微分型单稳态触发器 构成单稳态触发器的两个逻辑门是由RC耦合的,由于RC电路为微分电路的形式,故称为微分型单稳态触发器。下面以CMOS或非门构成的单稳态触发器为例,来说明它的工作原理。 ⑴ 没有触发信号时,电路处于一种稳态 没有触发信号时,为低电平。由于门输入端经电阻R接至,因此 为低电平; 的两个输入均为0,故输出为高电平,电容两端的电压接近0V,这是电路的“稳态”。在触发信号到来之前,电路一直处于这个状态:

, 。 ⑵ 外加触发信号,电路由稳态翻转到暂稳态 当时,的输出由1 0,经电容C耦合,使,于是的输出v02 =1, 的高电平接至门的输入端,从而再次瞬间导致如下反馈过程: 这样导通截至在瞬间完成。此时,即使触发信号撤除(), 由于的作用,仍维持低电平。然而,电路的这种状态是不能长久保持的,故称之为暂稳态。暂稳态时, ,。 ⑶ 电容充电,电路由暂稳态自动返回至稳态 在暂稳态期间,电源经电阻R和门的导通工作管对电容C充电,随着充电时 间的增加增加,升高,使时,电路发生下述正反馈过程(设此时触发器脉冲已消失): 迅速截止,很快导通,电路从暂稳态返回稳态。, 。 暂稳态结束后,电容将通过电阻R放电,使C上的电压恢复到稳定状态时的初始值。在整个过程中,电路各点工作波形如图6.8所示。

触发器是数字电路中的一种

触发器是数字电路中的一种基本单元

触发器是数字电路中的一种基本单元

第5章触发器 5.1 概述 触发器是数字电路中的一种基本单元,它与门电路配合,能构成各种各样的时序逻辑部件,如记数器、寄存器、序列信号发生器等。 一个触发器具有如下的特点: ①两个互补的输出端Q和Q;②“O”和“1”两个稳态; ③触发器翻转的特性;④记忆能力。 1.对触发器的基本要求 1)应该具有两个稳定状态——0状态和1状态 2)能够接收、保存和输出信号 2.触发器的现态和次态 现态——触发器接收输入信号之前的状态叫做现态,用Q n表示。 次态——触发器接收输入信号之后的状态叫做次态,用Q n+1表示。 3.触发器的分类 1)按照电路结构和工作特点分 基本触发器、同步触发器、主从触发器和边沿触发器 2)按照(在时钟控制下的)功能分 RS型触发器、D触发器、JK触发器、T触发器和T′触发器4.时序逻辑电路 组合逻辑电路的特点是 电路的输出仅取决于当时的输入,与电路的历史状态无关。即Z=F(X)。 时序逻辑电路的输出状态不仅与该时刻的输入有关,而且还与电路的历史状态有关。 由现在的输入状态和现在的输出状态共同决定下一次的输出状态。 电路特点 ①输入、输出之间至少有一条反馈路径; ②电路中含有贮存单元。 时序电路的一般结构如图。 X为输入变量; Z为输出变量; Q为触发器的输出,称为状态变量。Q n表示现态,Q n+1 表示次态;状态是时序电路的 输输C 触发 器的 状态 输出 控制 输入

一个重要概念。 W 为触发器的输入,也是时序电路的控制变量;CP 为时钟脉冲。 5.描述时序电路逻辑功能的方法 (1)方程式: ①输出方程:Z =F 1 (X ,Q n ) ②驱动方程:W =F 2 (X ,Q n ) ③状态方程:Q n +1= F 3 (W ,Q n ) (2)状态表 反映输入、输出、现态、次态之间的关系的表格。 (3)状态图 反映时序逻辑电路的状态转换规律及相应输入出取值情况的几何图形。 (4)时序图 表示各信号,电路状态等的取值在时间上的对应关系。 构成时序逻辑电路常用存储单元是触发器。 5.2 基本RS 触发器 5.2.1 由与非门组成 直接置0、置1,是构成各种不同功能触发器的基本单元。 用与非门构成的RS 触发器及逻辑符号如图。 1.功能分析 触发器的状态指Q 端的状态。 (1)R D =0,S D =1,则触发器置0。在R D 端加一 负脉冲(宽度>2t pd ),电路将可靠地翻转为Q =0状 态,并保持下来。 Q =0态,称为“复位状态”。 R D 端称为“复位端”或称直接置0端。 (2)R D =1,S D =0,则触发器置1。在S D 端加一 负脉冲(宽度>2t pd ),电路将可靠地翻转为Q =1状 态,并保持下来。 Q =1态,称为“置位状态”。 S D 端称为“置位端”或称直接置1端。 (3)R D =1,S D =1,则触发器保持原来的状态。 例如: Q =1,Q 、R D 的全1使Q =0,Q 的0又维持了Q 的1,这是触发器的一个稳态。同理,若Q =0,则触发器将保持另一个稳态—0态。 S Q R Q S Re

mysql触发器异常处理

MySQL触发器异常处理 MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it is already used by statement which invoked this 如果你在触发器里面对刚刚插入的数据进行了 insert/update, 则出现这个问题。因为会造 成循环的调用. create trigger test before update on test for each row update test set NEW.updateTime = NOW() where id=NEW.ID; END 应该使用set操作,而不是在触发器里使用 update,比如 create trigger test before update on test for each row set NEW.updateTime = NOW(); END MySQL触发器执行复合语句 触发器1.自增表中商品分类编码值+1,添加商品分类前给商品分类编码属性赋其对应的自 增表中的值 CREATE TRIGGER trigger1 BEFORE INSERT ON dw_base_commodity_category_info FOR EACH ROW BEGIN UPDATE sequence SET current_value=current_value+1 WHERE `name`='dw_base_commodity_category_info'; SET NEW.code=(SELECT current_value FROM sequence WHERE `name`='dw_base_commodity_category_info'); END; 删除触发器1:DROP TRIGGER trigger1; 触发器2.自增表中商品编码值+1,添加商品前给商品编码属性赋其对应的自增表中的值 CREATE TRIGGER trigger2 BEFORE INSERT ON dw_commodity_fact_info

大数据库实验6触发器实验报告材料

淮海工学院计算机工程学院实验报告书 课程名:《数据库原理及应用》 题目:存储过程和触发器 班级:软件132 学号: 2013122907 姓名:孙莹莹 评语: 成绩:指导教师: 批阅时间:年月日

一.目的与要求 1.掌握存储过程的创建方法; 2.掌握存储过程的执行、修改和删除等操作; 3.掌握触发器的创建方法; 4.掌握触发器的使用、修改和删除等相关内容 二.实验内容 基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能: 1.创建一个为worker表添加职工记录的存储过程Addworker; 2.创建一个存储过程Delworker删除worker表中指定职工号的记录。 3.显示存储过程Delworker; 4.删除存储过程Addworker和Delworker. 三.实验步骤 1 . (1)建立存储过程 USE factory GO CREATE PROCEDURE Addworker @no int=NULL, @name char(10)=NULL, @sex char(2)=NULL, @birthday datetime=NULL, @na char(2)=NULL, @wtime datetime=NULL, @depno int=NULL AS IF @no IS NULL OR @name IS NULL OR @sex IS NULL OR @birthday IS NULL OR @depno IS NULL BEGIN PRINT '请重新输入该职工信息!' PRINT '你必须提供职工号、姓名、性别、出生日期、部门号' RETURN END BEGIN TRANSACTION INSERT INTO worker VALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno) IF @@error<>0 BEGIN ROLLBACK TRAN RETURN END

数字逻辑器件_按功能分类_触发器锁存器等

数字逻辑器件触发器 CD40106BM:六施密特触发器 CD4013BE:具有置位/复位功能双D型触发器 CD4013BM:具有置位/复位功能双D型触发器 CD40174BE:六D触发器 CD40174BM:六D触发器 CD40175BE:COMS四D触发器 CD4027BM96:双JK触发器 CD4093BE:二输入端四与非施密特触发器 CD4093BM:二输入端四与非施密特触发器 SN74ABT374ADW:八边沿D触发器(带3态输出) SN74ABT377ADW:八边沿D触发器(带4态输出) SN74ABT573ADW:八边沿D触发器(带4态输出) SN74ABT574ADW:八边沿D触发器(带4态输出) SN74AC574DW:八上升沿D触发器(三态输出) SN74AC74N:双上升沿D触发器(带清除和预置) SN74ACT14D:六反相施密特触发器 SN74ACT374DW:八上升沿D触发器(三态同相输出) SN74ACT374N:八上升沿D触发器(三态同相输出) SN74ACT534N:八上升沿D触发器(三态反相输出) SN74ACT564N:八上升沿D触发器(三态反相输出) SN74ACT74D:双上升沿正D触发器(有预置和清除端) SN74ACT74N:双上升沿正D触发器(有预置和清除端) SN74AHC273DW:八D触发器(带清除) SN74AHC273N:八D触发器(带清除) SN74AHC374DW:八上升沿D触发器(三态同相输出) SN74AHC374N:八上升沿D触发器(三态同相输出) SN74AHC574DW:八上升沿D触发器(三态同相输出) SN74AHC574DWR:八上升沿D触发器(三态同相输出) SN74AHC574N:八上升沿D触发器(三态同相输出) SN74AHC74D:双上升沿D触发器(有预置和清除端) SN74AHC74N:双上升沿D触发器(有预置和清除端) SN74AHC74NSR:双上升沿D触发器(有预置和清除端) SN74AHC74PW:双上升沿D触发器(有预置和清除端) SN74AHCT374DW:八上升沿D触发器(三态同相输出) SN74AHCT374N:八上升沿D触发器(三态同相输出) SN74AHCT574DW:八上升沿D触发器(三态同相输出) SN74AHCT574N:八上升沿D触发器(三态输出) SN74AHCT74D:双上升沿D触发器(有预置和清除端) SN74AHCT74N:双上升沿D触发器(有预置和清除端) SN74ALS109AN:双JK触发器 SN74ALS174N:六上升沿D触发器(有清除端)

单稳态触发器只有一个稳定状态

单稳态触发器只有一个稳定状态,在外加脉冲的作用下,单稳态触发器可以从一个稳定状态翻转到一个暂态,该暂态维持一段时间又回到原来的稳态。 一、用555定时器构成单稳态触发器: 1.电路组成 如图6-7所示,其中R、C为单稳态触发器的定时元件,它们的连接点Vc与定时器的阀值输入端(6脚)及输出端Vo'(7脚)相连。单稳态触发器输出脉冲宽度tpo=1.1RC。 Ri、Ci构成输入回路的微分环节,用以使输入信号Vi的负脉冲宽度tpi限制在允许的范围内,一般tpi>5RiCi,通过微分环节,可使Vi'的尖脉冲宽度小于单稳态触发器的输出脉冲宽度tpo。若输入信号的负脉冲宽度tpi本来就小于tpo,则微分环节可省略。 定时器复位输入端(4脚)接高电平,控制输入端Vm通过0.01uF接地,定时器输出端Vo(3脚)作为单稳态触发器的单稳信号输出端。 2.工作原理 当输入Vi保持高电平时,Ci相当于断开。输入Vi'由于Ri的存在而为高电平Vcc。此时,①若定时器原始状态为0,则集电极输出(7脚)导通接地,使电容C放电、Vc=0,即输入6脚的信号低于2/3Vcc,此时定时器维持0不变。 ②若定时器原始状态为1,则集电极输出(7脚)对地断开,Vcc经R向C充电,使Vc电位升高,待Vc值高于2/3Vcc时,定时器翻转为0态。 结论:单稳态触发器正常工作时,若未加输入负脉冲,即Vi保持高电平,则单稳态触发器的输出Vo一定是低电平。 单稳态触发器的工作过程分为下面三个阶段来分析,图6-8为其工作波形图:

①触发翻转阶段: 输入负脉冲Vi到来时,下降沿经RiCi微分环节在Vi'端产生下跳负向尖脉冲,其值低于负向阀值(1/3Vcc)。由于稳态时Vc低于正向阀值(2/3Vcc),固定时器翻转为1,输出Vo 为高电平,集电极输出对地断开,此时单稳态触发器进入暂稳状态。 ②暂态维持阶段: 由于集电极开路输出端(7脚)对地断开,Vcc通过R向C充电,Vc按指数规律上升并趋向于Vcc。从暂稳态开始到Vc值到达正向阀值(2/3Vcc)之前的这段时间就是暂态维持时间tpo。 ③返回恢复阶段: 当C充电使Vc值高于正向阀值(2/3Vcc)时,由于Vi'端负向尖脉冲已消失,Vi'值高于负向阀值(1/3Vcc),定时器翻转为0,输出低电平,集电极输出端(7脚)对地导通,暂态阶段结束。C通过7脚放电,使Vc值低于正向阀值(2/3Vcc),使单稳态触发器恢复稳态。 二、单稳态触发器应用举例 利用单稳态触发器的特性可以实现脉冲整形,脉冲定时等功能。 1.脉冲整形

实验五 存储过程和触发器的定义和使用3

实验五存储过程和触发器的定义和使用 一、实验目的 1、掌握局部变量、全局变量、流程控制语句的使用方法 2、了解存储过程的类型和作用,并掌握使用对象资源管理器和Transact-SQL语句创建 存储过程的方法及使用方法。 3、理解触发器的特点和作用,并掌握使用Transact-SQL语言创建触发器的方法 二、实验内容 1.在学生成绩库中中有如下各表: 学生表(Student) 学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147 020102方露露01981-1-15信息管理计算机88297147 020103俞奇军11980-2-20信息管理计算机88297151 020104胡国强11980-11-7信息管理计算机88297151 020105薛冰11980-7-29水利工程水利系88297152 020201秦盈飞01981-3-10电子商务经济系88297161 020202董含静01980-9-25电子商务经济系88297062 020203陈伟11980-8-7电子商务经济系88297171 020204陈新江11980-7-20房建水利系88297171 create database学生成绩数据库 create table Student ( 学号Char(6)not null, 姓名Char(8)not null, 性别Bit not null, 出生日期smalldatetime, 专业Char(10), 所在系Char(10), 联系电话Char(11)null ) 课程表(Course) 课程号课程名教师开课学期学时学分 101计算机原理陈红2453 102计算方法王颐3453 103操作系统徐格2604 104数据库原理及应用应对刚3755 105网络基础吴江江4453 106高等数学孙中文1906 107英语陈刚1906 108VB程序设计赵红韦3705

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.wendangku.net/doc/9f12008228.html,o=https://www.wendangku.net/doc/9f12008228.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.wendangku.net/doc/9f12008228.html,o=https://www.wendangku.net/doc/9f12008228.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

数据库存储器与触发器实验报告(互联网+)

南昌航空大学实验报告 二0一七年 5 月 3 日 课程名称:数据库概论实验名称:存储器与触发器 班级:xxx 姓名:xxx 同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer2000或2005。 二、实验目的 1.掌握存储过程的创建,修改,使用,删除; 2.掌握触发器的创建,修改,使用,删除。 三、实验步骤及参考源代码 1.创建过程代码: CREATE PROCEDURE C_P_Proc(@ccna varchar(10),@cno char(4)OUTPUT,@cna varchar(10)OUTPUT,@pna varchar(20)OUTPUT,@num int OUTPUT) AS SELECT @cna=cna,@cno=https://www.wendangku.net/doc/9f12008228.html,o,@pna=pna,@num=num FROM cp,customer,paper WHERE https://www.wendangku.net/doc/9f12008228.html,o=https://www.wendangku.net/doc/9f12008228.html,o AND paper.pno=cp.pno AND cna=@ccna;

6.执行存储过程C_P_Pro,实现对李涛,钱金浩等不同顾客的订阅信息查询execute C_P_Proc@name='李涛' execute C_P_Proc@name='钱金浩' 7,删除存储过程C_P_Prcc DROP PROCEDURE C_P_PROC (4)在DingBao数据库中针对PAPER创建插入触发器TR_PA PER_I、删除触发器TR_PAPER_D、修改触发器TR_PAPER_U。具体要求如下。

<1>对PAPER的插入触发器:插入报纸记录,单价为负值或为空时,设定为10元。 CREATE TRIGGER TR_PAPER_I ON paper FOR INSERT AS DECLARE @ippr FLOAT; declare @ipno int; SELECT @ippr=ppr,@ipno=pno from inserted begin if @ippr<0 or @ippr is NULL begin raiserror('报纸的单价为空或小于零!',16,1) update paper set ppr=10 where paper.pno=@ipno end

数据库实验三触发器的创建修改及删除

昆明理工大学信息工程与自动化学院学生实验报告 ( 2010 —2011 学年第二学期) 课程名称:数据库高级应用开课实验室:计算中心208 2011年 5月 17日 年级、专业、班学号姓名成绩 实验项目名称触发器的创建、修改及删除指导教师 教师 评语 教师签名: 年月日一、实验目的、要求 目的:了解触发器的功能 掌握触发器的使用方法 要求:实现简单触发器的使用 二、实验所用仪器、材料 微型计算机一台 SQL server 2008 三、实验原理 触发器与存储过程非常相似,触发器也是SQL 语句集,两者惟一的区别是触发器不能用EXECUTE 语句调用,而是在用户执行Transact-SQL 语句时自动触发(激活)执行。触发器是一个在修改指定表中的数据时执行的存储过程。经常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性或者一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以此确保数据的完整性。触发器不同于存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE 这些操作时,SQL Server 就会自动执行触发

器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。 四、实验过程及数据记录 创建触发器BB(修改表S中的数据时SC中的数据也同时修改了) CREATE TRIGGER BB ON S FOR UPDATE AS IF UPDATE(S#) BEGIN UPDA TE SC SET SC.S#=A.S#FROM INSERTED A,DELETED B WHERE SC.S#=B.S# END 查看表SC的数据 SELECT*FROM SC WHERE S#='200510405101' 修改表S中的数据 UPDA TE S SET S#='000000000000' 查看表SC中的数据(验证触发器的效果) SELECT*FROM SC WHERE S#='000000000000'

实验6 数据库实验——存储过程和触发器

实验6 存储过程与触发器 一、实验目的 1、加深与巩固对存储过程与触发器概念的理解。 2、掌握触发器的简单应用。 3、掌握存储过程的简单应用。 二、实验内容 一)存储过程: 1、创建一存储过程,求l+2+3+…+n,并打印结果。 CREATE PROCEDURE addresult AS DECLARE @n int=10,/*最后一个数*/ @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 2.调用上面的addresult存储过程,打印l十2+3+…+10的结果。EXEC addresult

3、修改上述存储过程为addresult1,使得@n为输入参数,其具体值由用户调用此存储过程时指定。 CREATE PROCEDURE addresult1 @n int=10 /*最后一个数*/ AS DECLARE @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 4、调用上面修改后的addresult1存储过程,打印l+2+3+…+100的结果。 EXEC addresult1 100 5.修改上述存储过程为addresult2,将@n参数设定默认值为10,并改设@sum为输出参数,让主程序能够接收计算结果。

单稳态触发器

课题:单稳态触发器 课时:讲/练二课时 教学要求: (1)理解单稳态触发器的工作原理; (2)掌握输出波形周期的估计。 教学过程: 一、微分型单稳态触发器 1、单稳态触发器的功能特点:只有一个稳定状态的触发器。如果没有外来 触发信号,电路将保持这一稳定状态不变。只有在外来触发信号作用下,电路才会从原来的稳态翻转到另一个状态。但是,这一状态是暂时的,故称为暂稳态,经过一段时间后,电路将自动返回到原来的稳定状态。 2、功能:常用于脉冲的整形和延时。 3、电路组成: vo经过R、C组成的微分电路,耦合 到门G2的输入端,故称微分型单稳态电路。 4、工作原理: 1)电路的稳态:无触发信号输入时,v I为高 电平。由于电阻R很小,B端相当于接地,门 G2的输入信号为低电平0,v o输出高电平1 态。 2)电路的暂稳态:当输入端A加入低电 平触发信号时,门G1的输出为高电平1,通过电容C耦合,门G2 的输入信号为高电平1,v o输出低电平0态。 3)暂稳态期间:v o1高电平对C充电,使B端的电平也逐渐下降。 4)自动恢复为稳态:当B端的电平下降到关门电平时,门G2关闭,输出电压又上跳为高电平。 5、输出脉冲宽度:T W≈0.7RC。 二、集成单稳态触发器-CT74121 (一)外引线排列及引出端符号 Q:暂稳态正脉冲输出端; Q:暂稳态负脉冲输出端; TR+:为正触发(上升沿触发)输入端; TR一A、TR一B:两个负脉冲(下降沿触发)输入端;

Cext:为外接电容端; Rint:为内电阻端; Rext/Cext:为外接电阻和电容的公共端; Vcc、GND、NC。 (二)逻辑功能及简要说明 1、外引线排列图: 2、输出脉冲宽度T W由定时元件R、C决定。T W≈0.7RC。作业:P26713-9、13-10

实验六 存储过程和触发器

实验六存储过程与触发器 一、目的与要求 1.掌握编写数据库存储过程的方法。 2.掌握建立数据库触发器的方法,通过实验观察触发器的作用与触发条件设置 等相关操作。 二、实验准备 1.了解编写存储过程与调用的T-SQL语法; 2.了解触发器的作用; 3.了解编写触发器的T-SQL语法。 三、实验内容 (一)存储过程 在studentdb数据库中建立存储过程getPractice,查询指定院系(名称)(作为存储过程的输入参数)中参与“实践”课程学习的所有学生学号、姓名、所学课程编号与课程名称,若院系不存在,返回提示信息。 提示:D_Info表中存储了院系代码D_ID,而St_Info表中学号字段St_ID的前两位与之对应,则D_Info表与St_Info表之间的联系通过这两个字段的运算构成连接条件。 1.分别执行存储过程getPractice,查询“法学院”与“材料科学与工程学院” 的学生中参与“实践”课程的所有学生学号、姓名、所学课程编号与课程名称。 create procedure getPractice @D_Name varchar(30) output as begin if not exists (select * from D_Info where D_Name= @D_Name ) print '对不起,该院系不存在' else select st_info、St_ID,C_Info、C_No,C_Name from s_c_info inner join st_info on st_info、St_ID=s_c_info、st_id inner join C_Info on s_c_info、c_no=C_Info、C_No where st_info、St_ID in ( select St_ID from st_info join D_Info on D_Info、D_ID =left(st_info、St_ID,2) where C_Info、C_Type='实践' and D_Info、D_Name= @D_Name ) end go

单稳态触发器芯片有哪些_单稳态触发器工作原理

单稳态触发器芯片有哪些_单稳态触发器工作原理 单稳态触发器只有一个稳定状态,一个暂稳态。在外加脉冲的作用下,单稳态触发器可以从一个稳定状态翻转到一个暂稳态。由于电路中RC延时环节的作用,该暂态维持一段时间又回到原来的稳态,暂稳态维持的时间取决于RC的参数值。 单稳态触发器电路组成如图所示,其中R、C为单稳态触发器的定时元件,它们的连接点Vc与定时器的阈值输入端(6脚)及输出端V o(7脚)相连。单稳态触发器输出脉冲宽度tpo=1.1RC。 Ri、Ci构成输入回路的微分环节,用以使输入信号Vi的负脉冲宽度tpi限制在允许的范围内,一般tpi》5RiCi,通过微分环节,可使Vi’的尖脉冲宽度小于单稳态触发器的输出脉冲宽度tpo。若输入信号的负脉冲宽度tpi本来就小于tpo,则微分环节可省略。 定时器复位输入端(4脚)接高电平,控制输入端Vm通过0.01uF接地,定时器输出端V o(3脚)作为单稳态触发器的单稳信号输出端。 单稳态触发器工作原理当输入Vi保持高电平时,Ci相当于断开。输入Vi‘由于Ri的存在而为高电平Vcc。此时,①若定时器原始状态为0,则集电极输出(7脚)导通接地,使电容C放电、Vc=0,即输入6脚的信号低于2/3Vcc,此时定时器维持0不变。 ②若定时器原始状态为1,则集电极输出(7脚)对地断开,Vcc经R向C充电,使Vc 电位升高,待Vc值高于2/3Vcc时,定时器翻转为0态。 结论:单稳态触发器正常工作时,若未加输入负脉冲,即Vi保持高电平,则单稳态触发器的输出V o一定是低电平。 单稳态触发器的工作过程分为下面三个阶段来分析,图为其工作波形图: ①触发翻转阶段: 输入负脉冲Vi到来时,下降沿经RiCi微分环节在Vi’端产生下跳负向尖脉冲,其值低于负向阀值(1/3Vcc)。由于稳态时Vc低于正向阀值(2/3Vcc),固定时器翻转为1,输出V o为高电平,集电极输出对地断开,此时单稳态触发器进入暂稳状态。 ②暂态维持阶段:

数据库原理课程设计报告报告实验创建存储过程与触发器

存储过程与触发器实验日期和时间: 2016 年 5 月13 日、星 期 五第节 实验室:DJ2-信息管理实验室 班级:学号:姓名: 实验环境: 1.硬件:笔记本电脑 2.软件:SQL Server 2012 实验原理: 存储过程概念:存储过程是事先编好的,存储在数据库中的一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。存储过程可以接受用户的输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言(DDL)和数据操作语言(DML)语句,然后返回输入参数。 触发器概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 实验任务: 此作业成绩得分根据你完成的任务的难度和数量评分,完成后在实验室给老师演示验收,课后提交电子版报告。如额外完成自拟题目应当事先将所拟题目提交给老师或在报告中明确标注题意。 假定有学校的图书馆管理信息系统,可以用于日常管理书库和同学们的借还书工作。 以下列出参考的库表情况: 根据管理的业务需求来分析,该管理信息系统的数据库应至少包括如下数据表:(打★号的是必须有的表) 1.★图书现有库存表。作用:记录图书的现有库存情况。至少包括:书号、书名、 作者、简介、类别、价格、出版社、出版日期、现有库存数量、最小库存量、库 存总量、库存位置等。 2.★读者信息表。作用:记录读者信息。至少包括:读者编号、证件类型、证件号 码、姓名、性别、职业(可填写教师、学生、教工、其它……)、所属单位、地址、 联系电话等。 3.★借书记录表。作用:记录借书情况,以及是否归还。至少包括:借阅ID(主键, 可设置为自动编号)、书号、读者编号、借阅数量、借阅日期、是否归还、管理员 编号……等。 4.★还书记录表。作用:记录还书情况。至少包括:还书ID(主键,可设置为自动 编号)、书号、读者编号、归还数量、归还日期、是否超期(超过假设45天为超 期)、超期天数、管理员编号……等。(附:为简化操作,续借可视为归还后再借)。 5.管理员信息表。作用:记录负责管理书库和借书还书工作的管理员信息。至少包 括:管理员编号、职工编号(在职工档案表中的职工编号)、用户名、密码、管理

触发器是数电路中的一种基本单元

第5章触发器 5.1 概述 触发器是数字电路中的一种基本单元,它与门电路配合,能构成各种各样的时序逻辑部件,如记数器、寄存器、序列信号发生器等。 一个触发器具有如下的特点: ①两个互补的输出端Q和Q;②“O”和“1”两个稳态; ③触发器翻转的特性;④记忆能力。 1.对触发器的基本要求 1)应该具有两个稳定状态——0状态和1状态 2)能够接收、保存和输出信号 2.触发器的现态和次态 现态——触发器接收输入信号之前的状态叫做现态,用Q n表示。 次态——触发器接收输入信号之后的状态叫做次态,用Q n+1表示。 3.触发器的分类 1)按照电路结构和工作特点分 基本触发器、同步触发器、主从触发器和边沿触发器 2)按照(在时钟控制下的)功能分 RS型触发器、D触发器、JK触发器、T触发器和T′触发器4.时序逻辑电路 组合逻辑电路的特点是 电路的输出仅取决于当时的输入,与电路的历史状态无关。即Z=F(X)。 时序逻辑电路的输出状态不仅与该时刻的输入有关,而且还与电路的历史状态有关。 由现在的输入状态和现在的输出状态共同决定下一次的输出状态。 电路特点 ①输入、输出之间至少有一条反馈路径; ②电路中含有贮存单元。 时序电路的一般结构如图。 X为输入变量; Z为输出变量; Q为触发器的输出,称为状态变量。Q n表示现态,Q n+1 表示次态;状态是时序电路的 输入X输出Z CP 触发器的 状态输出

一个重要概念。 W 为触发器的输入,也是时序电路的控制变量;CP 为时钟脉冲。 5.描述时序电路逻辑功能的方法 (1)方程式: ①输出方程:Z =F 1 (X ,Q n ) ②驱动方程:W =F 2 (X ,Q n ) ③状态方程:Q n +1= F 3 (W ,Q n ) (2)状态表 反映输入、输出、现态、次态之间的关系的表格。 (3)状态图 反映时序逻辑电路的状态转换规律及相应输入出取值情况的几何图形。 (4)时序图 表示各信号,电路状态等的取值在时间上的对应关系。 构成时序逻辑电路常用存储单元是触发器。 5.2 基本RS 触发器 5.2.1 由与非门组成 直接置0、置1,是构成各种不同功能触发器的基本单元。 用与非门构成的RS 触发器及逻辑符号如图。 1.功能分析 触发器的状态指Q 端的状态。 (1)R D =0,S D =1,则触发器置0。在R D 端加一 负脉冲(宽度>2t pd ),电路将可靠地翻转为Q =0状 态,并保持下来。 Q =0态,称为“复位状态”。 R D 端称为“复位端”或称直接置0端。 (2)R D =1,S D =0,则触发器置1。在S D 端加一 负脉冲(宽度>2t pd ),电路将可靠地翻转为Q =1状 态,并保持下来。 Q =1态,称为“置位状态”。 S D 端称为“置位端”或称直接置1端。 (3)R D =1,S D =1,则触发器保持原来的状态。 例如: Q =1,Q 、R D 的全1使Q =0,Q 的0又维持了Q 的1,这是触发器的一个稳态。同理,若Q =0,则触发器将保持另一个稳态—0态。 S D Q R D Q Set Reset

相关文档
相关文档 最新文档