有两个表, 一个是员工表, 有 工号,姓名, 部门名称 (例如: 生产部,管理部)
另一张表 部门表, 字段, 部门名称,部门人数.要求员工表插入一条新记录时, 部门人数相应部门增加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
      

  2.   

    creat trigger on 员工表
    after insert
    as
    begin
    declear @员工部门 nvarchar(20),@部门人数 int
    set @员工部门 = select 部门名称 from inserted(就是刚刚插入的那条数据的部门字段)
    set @部门人数 = select 部门人数 from 部门表 where 部门名称 = @员工部门
    updata 部门表 set 部门人数 = @部门人数+1 where 部门名称 = @员工部门
    end
    这是插入时出发的触发器
      

  3.   

    不错,我也写了个触发器, 多个分支是怎么写的?  if......if ....?
    还是while /where  条件判断等等.还是case 等等.
    我写的是if ()  ...... if().... 是否还有其它方法.
      

  4.   

    存储过程中的条件如何判断? 例如
     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, ...............)