* 回滚只能回滚到上一步操作。
* UPDATE,INSERT,DELELE 这些操作都将建立一个临时库(SQL 2000触发器只有DELETED,INSERTED)存储被操作过的数据。
/*触发器实例(3)*/
create trigger grade_update
on sc
for delete,insert,update
as
declare @sname char(10)
declare @grade smallint
select @sname=sno,@grade=grade from sc where grade>100 or grade<0
if @grade<0
begin
update sc set grade=0 where sno=@sname
print '成绩输入有误!'+@sname+' 成绩置为0'
end
else if @grade>100
begin
rollback tran
print '成绩输入有误!'+@sname+'成绩输入无效'
end
else
begin
print'成绩输入有效,已经更新!'
end
update sc set grade=-12 where sno='95001' /*看效果*/
update sc set grade=120 where sno='95001'
/*触发器实例(3)*/
create trigger sexandage1_update
on student
for delete,insert,update
as
declare @sssex char(2)
declare @ssage smallint
select @sssex=ssex,@ssage=sage from student where ssex<>'男' or sage>=25
if @sssex<>'男'
begin
update student set ssex='男' where ssex=@sssex
print '你输入的性别有误!性别'+@sssex+'性别置为男性别'
end
else if @ssage>=25
begin
update student set sage=24 where sage=@ssage
print '你输入的年龄大于24岁!年龄'+@ssage+'年龄置为25岁!'
end
insert into student ( sno,ssex, sage) values('95029','男',25) /*看效果*/
/*触发器实例(4)*/
create trigger samesno_update
on student
for delete,insert,update
as
declare @ssno char(5)
declare @num smallint
select @ssno=sno from inserted where sno=@ssno
select @num=count(sno) from student where sno=@ssno
if @num>=2
begin
delete from student where sno=@ssno
print 'shurucuo'
end
DBA工作流程:建库-建表-建触发器(delete,insert)-建存储过程-录入数据
/*作业的操作*/
/*分离,附加,删除数据库的不同点*/
分离:右击已建的数据库选分离数据库
附加:右击数据库目录选附加数据库
备份:完全,差异,事物,完全和差异一般共用一个数据库,事物单独用一个数据库,查看备份情况:右击已建的备份作业选查看历史记录
还原:必须从设备中添加,数据库名不同用强制还原
游标:一个标志,一个游动的过程。
1,向前游标
2,静态游标(可做删,改,查操作)(static)
3,动态游标 (dynamic)
4,关键值游标(动静结合)(keyset)
格式:
declare cur_stu cursor/*建立游标*/
keyset
for
select * from student
open cur_stu /*打开游标*/
fetch next from cur_stu/*使用*/
fetch prior from cur_stu
fetch first from cur_stu
fetch last from cur_stu
fetch last absolute 3 from cur_stu
fetch last relative 3 from cur_stu
/*注:absolute :绝对位置
relative :相对于当前的位置*/
格式: fetch [next/prior/first/last/absolute/relative]
from 游标名
/*静态游标例子*/
declare cur_stus cursor
static
for
select * from student
open cur_stus
delete from student where sno='95009'
fetch next from cur_stu
fetch prior from cur_stu
fetch first from cur_stu
fetch absolute 3 from cur_stu
fetch relative 3 from cur_stu
/*随机抽取两条记录*/
declare stucursss cursor
keyset
for
select * from student
open stucursss
create proc ppppp
as
declare @ppppp smallint
set @ppppp=floor (rand()*5)-1
print 'first rand'
fetch absolute @ppppp from stucursss
set @ppppp=floor (rand() *5)-1
print 'second rand'
fetch absolute @ppppp from stucursss
ppppp
ppppp /*调用pp过程*/
close stucur /*关闭游标*/
deallocate 游标名 /*删除游标*/
设置access数据库密码:"工具"/"安全"/"设置数据库密码"
撤消access数据库密码:
(1)"文件"/"打开"单击已经建立的*.mdb数据库文件,在右下角"打开"中选择以独占方式打开。
(2)"工具"/"安全"/"撤消数据库密码"
相关推荐
- **示例3**:可以创建一个名为`salary_check_trigger`的触发器,用于在`employees`表上监视INSERT事件,以执行薪资检查或更新相关记录的其他业务规则。 4. **使用场景** - 数据一致性:如商品信息和库存信息的...
3. FOR 触发器:相当于 AFTER 触发器,但可以选择是否指定触发器所有者名称。 三、触发器的执行顺序 触发器的执行顺序如下所示: 1. 级联操作和约束检查 2. AFTER 触发器 3. INSTEAD OF 触发器 四、触发器的使用...
5. **订单插入触发器 3**:检查订单中的商品是否存在于商品表中。 ```sql CREATE TRIGGER orderinsert3 ON Orders AFTER INSERT AS BEGIN IF (SELECT COUNT(*) FROM Goods, Inserted WHERE Goods.Name = Inserted....
本实验的主题围绕着“Multisim仿真实验三 触发器”,主要关注触发器的逻辑功能、触发器之间的转换以及如何利用JK触发器构建双向时钟脉冲电路。下面我们将详细探讨这些知识点。 首先,触发器是数字电路中的基本存储...
RS触发器和SR触发器是数字电路中常见的基本逻辑门,它们都是利用电子开关实现的信号存储电路,但它们之间存在一些基本的差异。理解这两者的区别,对于学习数字逻辑电路设计和分析是非常重要的。 RS触发器,全称为...
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
具体操作时,可以将步骤2和步骤3结合起来进行,这样可以更高效地推导出触发器的状态变化。在画波形图时,要注意时钟信号CP的脉冲、J和K输入的逻辑电平,以及主从触发器的输出Qn和Qn+1的变化。JK触发器的特性是在时钟...
基于Multisim14,绘制的JK触发器及D触发器构成计数型触发器仿真.
实验3主要探讨了四种类型的触发器:基本RS触发器、JK触发器、D触发器以及触发器间的相互转换。触发器作为基础的存储元件,其核心特性在于它们能维持两种稳定状态,代表二进制的0和1,并在特定条件下能够从一种状态...
3. **DELETE触发器**:在数据行被删除时,这种触发器会被调用。 4. **INSTEAD OF触发器**:与前三者不同,这种触发器可以在DML(数据操纵语言)操作发生之前或之后替代实际的操作,允许对操作进行自定义处理。 5. **...
MySQL触发器是数据库管理系统提供的一种机制,用于在特定的数据操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句。这些触发器可以用来实现复杂的业务规则,确保数据的一致性和完整性,或者...
触发器可以分为四种类型:DML触发器、DDL触发器、替代触发器和数据库事件触发器。 DML触发器是定义在表上的触发器,由DML事件引发。DML事件包括INSERT、UPDATE和DELETE三种。DML触发器可以在 BEFORE 或 AFTER 触发...
触发器-K3wise出入库单据时间限制,限制K3出入库单据的制单时间范围。
RS触发器(Reset-Set Flip-Flop)和SR触发器(Set-Reset Flip-Flop)是数字电子学中非常基础的逻辑电路组件,它们属于触发器的一种类型。触发器是一种双稳态的存储设备,能够存储一位二进制数(0或1),并且在输入...
边沿 D 触发器的建立时间、保持时间和传输延迟时间分别为 tset≥2tpd、tHL≥tpd 和 tPHL=3tpd、tPLH=2tpd。 在实际应用中,边沿 D 触发器具有更强的抗干扰能力和更高的工作速度。它广泛应用于数字电子系统中,例如...
3. D触发器: D触发器(Data或Delay触发器)仅在时钟上升沿改变其输出,根据D输入的值来更新Q。在VHDL描述中,`if(clk'event and clk='1') then q;`这一段代码明确了这一点。D触发器常用于数据的同步传输和存储。 4...
3. **触发器调试技巧**: - 使用`DBMS_OUTPUT.PUT_LINE`:在触发器中插入`DBMS_OUTPUT.PUT_LINE`语句,可以打印出关键变量或条件的值,有助于理解代码的执行流程。 - 检查会话设置:确保`SET SERVEROUTPUT ON`已...
3. **J、K触发器**: J、K触发器与D触发器类似,但提供了更多的功能。J和K输入可以分别控制触发器的翻转或置位/复位操作。当J=K=0时,触发器保持当前状态;J=K=1时,触发器翻转状态;J=0,K=1或J=1,K=0时,触发器...