在数据库中建立一个触发器:当学生表student中插入一个新同学时,就会显示所有的同学的信息
代码如下:
alter table SC
Drop constraint FK_SC--删除外键约束
CREATE TRIGGER trig_insert ON SC--在SC表中创备前建trig_insert触发器
AFTER INSERT--insert为触发事件棚宽,after则为触发的时机
AS IF NOT EXISTS(
SELECT * FROM Course,
inserted where Course.Cno=inserted.Cno) --向SC表插入数据时,检查插入数据的课程号是否存在于Course表中
begin print'插入的课程号不在课程表中'--出链滚亮错提示 rollback
END测试触发器:
insert into SC VALUES('201215130','2','78');--命令成功执行
INSERT INTO SC VALUES('201215131','10','78');--事务在触发器中结束。
批处理已中止
扩展资料
触发器是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。
SQL触发器,是一种特殊类型的存储过程,不由用户直接调用。它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。他可以查询其它表,并可以包含复杂的Transact-SQL语句。
将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到严重错误(例如,磁盘空间不足),则整个事务即自动回滚。常常用于强制业务规则和数据完整性。
参考资料来源:
2024-09-04 广告
触发器大多用在坦搭安全方面的操作 如果不成斗绝功回滚用的
先insert
再select不对吧
create trigger i_student on student
after insert
as
select * from student
--可以绝迹仔插入一条数据测试
insert student values(...)
mssql这样:
create trigger t1 on student
for insert
as
select * from student