有两个表, 一个是员工表, 有 工号,姓名, 部门名称 (例如: 生产部,管理部)
另一张表 部门表, 字段, 部门名称,部门人数.要求员工表插入一条新记录时, 部门人数相应部门增加1人.更新时也一样,当员工更改了部门(例如从生产部调到管理部),则生产部人数减1, 管理部人数加1.
另一张表 部门表, 字段, 部门名称,部门人数.要求员工表插入一条新记录时, 部门人数相应部门增加1人.更新时也一样,当员工更改了部门(例如从生产部调到管理部),则生产部人数减1, 管理部人数加1.
调试欢乐多
或自己用事務作處理嘍示例:begin transaction
begin try
insert into employee values(....);
update department set eCount=eCount+1 where ...
commit transaction
end try
begin catch
rollback transaction
end catch
after insert
as
begin
declear @员工部门 nvarchar(20),@部门人数 int
set @员工部门 = select 部门名称 from inserted(就是刚刚插入的那条数据的部门字段)
set @部门人数 = select 部门人数 from 部门表 where 部门名称 = @员工部门
updata 部门表 set 部门人数 = @部门人数+1 where 部门名称 = @员工部门
end
这是插入时出发的触发器
还是while /where 条件判断等等.还是case 等等.
我写的是if () ...... if().... 是否还有其它方法.
if ( not 刚插入的工号与aaa表中的工号比对) 为真(即aaa表没有找到了工号)
'' insert into values( @gonghao, ' ','same value')我是这样写的
select @gonghao = select 工号 from inserted
if( not @gonghao=(Select 工号 from aaa) )
insert into aaa values( @gonghao, ...............)