浅尝触发器

今天学习了编写了一个简单的触发器.以下是对该触发器的编写的基本思路:

首先数据库中有两张表,一张WorkInfo表用来保存员工信息,字段有id,username,dptid.username是员工姓名,dptid是所属部门ID.另一张是dptInfo表,用来保存部门信息,有三个字段,id,dptname,dptworker.dptname是部门名,dptworker是员工数量.

当增加了一个员工时 ,触发触发器使得该员工所在部门的人数自动加一;当修改了一个员工的部门时,触发触发器使得该员工原来部门的人数减一,该员工现属部门人数加一.

编写触发器之前,先介绍两个基本的概念:

inserted,deleted是两个虚拟表,inserted保存的是insert或update之后影响的记录形成的表,deleted保存的是delete或update之前所影响的记录形成的表.

以下是对WorkInfo表的触发器代码:

CREATE   TRIGGER  tri_InsertCount  ON  dbo.WorkInfo 
FOR   INSERT , update , delete  
AS   declare   @id   int , @count   int , @dptid   int , @count1   int
select   @id = dptid  from  inserted
select   @count = count ( * from  WorkInfo  where  dptid = @id
select   @dptid = dptid  from  deleted
select   @count1 = count ( * from  WorkInfo  where  dptid = @dptid

update  dptInfo  set  dptworker = @count   where  id = @id
update  dptInfo  set  dptworker = @count1   where  id = @dptid
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值