sql server触发器

来源:互联网 发布:java 类构造器 编辑:程序博客网 时间:2024/06/05 15:57

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

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

CREATE TRIGGER DELETE_SMON student for delete asbegin declare @Sno nvarchar(50)select @Sno=sno from deletedDELETE FROM scWHERE Sno=@Snoend

当执行删除语句时

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_Inson studentafter insertas begin declare @Sno  varchar(9)select @Sno=sno from insertedinsert into student1select * from studentwhere Sno=@snoend

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

查看student和student1表


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

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

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

create trigger teacher_incomeon T_teacher after insertas 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 insertedif(@T_Titles='教授')and (@T_Wage<4000) update T_Teacherset T_Wage=4000where T_No=@T_Noendinsert into T_teachervalues ('1006','李占朋','男','教授',1000)

效果图为

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

原创粉丝点击