SQL笔记06

触发器

--触发器
create trigger t1 on stu after insert
as
begin
	if (select COUNT(*) from stu)>17
	begin
		print 'error'
		rollback tran
	end
	else
	begin
		print 'right'
	end
end
insert into stu (sno,sname) values('20200017','kk')
drop trigger t1
select COUNT(*) from stu
delete from stu where sno='20200017' or sno='20200018'

--插入之前是不会插入的
alter trigger t1 on stu instead of insert
as
begin
	select * from inserted
	select * from deleted
	if (select COUNT(*) from stu)>17
	begin
		print 'error'
		rollback tran
	end
	else
	begin
		print 'right'
		--要在触发器里写插入
		declare @sno varchar(13)
		declare @sname varchar(30)
		declare @age int
		select @sno=sno from inserted
		select @sname=sname from inserted
		select @age=age from inserted
		insert into stu(sno,sname,age) values (@sno,@sname,@age)
	end
end
insert into stu (sno,sname) values('20200017','kk')
select COUNT(*) from stu
use stuinfo
create trigger t2 on stu after delete
as
begin
	if (select COUNT(*) from stu)<16
	begin
		print 'error'
		rollback tran
	end
	else
	begin
		print 'right'
	end
end
delete from stu where sno='20200016'

alter trigger t3 on sc instead of insert
as
begin
	--声明变量
	declare @sno varchar(13)
	declare @cno varchar(13)
	declare @grade decimal(5,2)
	--赋值
	select @sno=sno from inserted
	select @cno=cno from inserted
	select @grade=grade from inserted
	if @grade>=55 and @grade<=59
	begin
		set @grade =60
	end
	insert into sc values(@cno,@sno,@grade)
end
insert into sc values('20202','2020005',57)
select * from sc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值