触发器是什么
触发器是用来维护表数据的完整性。触发器是一个特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。
为什么需要用到触发器
1.在对表的数据做出任何修改之后立即被激活,简单化操作。
2. 可以引用不同表中的列,但又与CHECK约束有不同,它能够实现答比CHECK约束更为复杂的约束。
3. 可以阻止数据库中未经许可版的指定更新和变化。
触发器的类型
1.INSTEAD-OF触发器
2.AFTER触发器要语句在数据库里使用之后才执行。
创建一个触发器
after触发器是在对表进行操作之后触发的。创建新增触发器语句
需求:在新增手机的时候,对应的类型表数据要更新
create phone phe_phoneInsert
on [dbo].[phones]
for insert
as
–定义变量,存储新增手机的类型ID
declare @typeID int
–定义变量存储手机类型的数量
declare @typeNums int
–找到存储新增手机的类型ID
select @typeID=typeID from inserted
–计算出对应手机类型的数量
select @typeNums=count(*) from [dbo].[phones] where typeID=@typeID
–更新phonesTypes表
update [dbo].[phoneTypes] set Nums=@typeNums