sql server触发器

一、保证数据完整性的触发器

现在需要如果删除71号的话,把下面的成绩也删除

CREATE TRIGGER DELETE_SM
ON student for delete as
begin declare @Sno nvarchar(50)
select @Sno=sno from deleted
DELETE FROM sc
WHERE Sno=@Sno
end

当执行删除语句时

delete from student where sno='71'

发现下面的表中的71号的记录已经删除了。

二、利用触发器做复制操作

先使用下面语句做复制表操作

select * into student1 from student 这样就存在了一个表与之student一样的表student1

原表存在的话这样用:
insert into a select * from b

原表不存在的话这样用:
select * into a from b
开始的student,student1表如图

其触发器代码如下

create trigger student_Ins
on student
after insert
as 
begin declare @Sno  varchar(9)
select @Sno=sno from inserted
insert into student1
select * from student
where Sno=@sno
end

往其中一个表中添加一条数据

查看student和student1表


发现两个表数据都添加了一条

三、利用触发器修改不合法的数据

把教授的工资如果插入时是小于4000的话默认值设置为4000

	create trigger teacher_income
		on T_teacher after insert
		as
	 begin 
	declare @T_No nvarchar(50)
	declare @T_Titles nvarchar(50)
	declare @T_Wage nvarchar(50)
	select @T_No=T_No,@T_Titles=T_Titles,@T_Wage=T_Wage from inserted
	if(@T_Titles='教授')and (@T_Wage<4000) 
	update T_Teacher
	set T_Wage=4000
	where T_No=@T_No
	end
insert into T_teacher
values ('1006','李占朋','男','教授',1000)

效果图为

发小效果达到了。。。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值