多语言展示
当前在线:238今日阅读:84今日分享:32

数据库插入数据类型的触发器使用方法

在sqlserver数据库中,对于插入数据的触发器(insert trigger),主要有两种类型:第一种:使用 for 关键字修饰:先执行触发器,后执行插入语句,因此,触发器可以执行数据验证等功能第二种:使用 after 关键字修饰:先插入数据,然后再执行触发器的内容注意:本文只介绍了Insert类型的触发器,Update、Delete类型的触发器原理是一样的
工具/原料

sqlserver 2017

方法/步骤
2

在左侧表列表中,展开刚刚新建的表,会看到有一个【触发器】的菜单,在此处点击鼠标右键,选择【新建触发器】,就会出现右侧默认的触发器大致结构

3

在上一步出现的触发器大致结构中,创建第一种插入触发器,使用for关键字修饰,触发器中判断ColCode=‘Code1’时回滚,这样就不会将code1这样的记录插入到数据库中了注意:在触发器中,可以将 数据库内置的 inserted 当成一张表,而且这里只有当前插入、修改的数据行记录

4

首先尝试插入ColCode=‘Code2’的值,从运行结果可以看出,此项正常插入了

5

接着尝试插入ColCode=‘Code1’的值,从运行结果可以看出,事务直接中止了,这样的数据插入不成功

6

按照前面类似的步骤,创建第二种插入触发器,使用after关键字修饰,在触发器中将插入的这条记录RemarkAfter栏位值更新为指定值

7

尝试插入ColCode=‘Code3’的值,执行之后,查询整张表的结果,可以看出RemarkAfter的值按照触发器的值更新了。由于Code2这条记录是在After修饰的触发器之前插入的,因此,这个RemarkAfter栏位是不会更新的

注意事项
1

本文使用的是sqlserver 2017进行演示,同样适用于sqlserver 2008及以上版本

2

对于update类型的触发器,仍然使用 inserted 获取修改的记录数据行

3

对于delete类型的触发器,使用 deleted 获取要删除的记录数据行

推荐信息