我一下代码有什么问题呢?
当我向员工表中添加数据时,不能向部门表自动添加啊create trigger pt2
on people for insert 
as
declare @d char(10)
declare @e char(10)
select @d= id from people
select @e=position from people
if @e='经理'
begin
insert into department(department_id,department_name, id) values('a','经理室',@d)
end
if @e='技术人员'
begin
insert into department(department_id,department_name ,id) values('b','技术部门',@d)
end
if @e='销售人员'
begin
insert into department(department_id,department_name ,id) values('d','销售部门',@d)
end
if @e='财务人员'
begin
insert into department(department_id,department_name ,id) values('c','财务部门',@d)
end

解决方案 »

  1.   

    好像米问题呀,CHAR(10)有没有关系
      

  2.   

    你的create table 语句是什么?是不是有外键的影响?
      

  3.   

    create table department(id char(10) primary key, department_id char(10), department_name char(20), foreign key (id) references people(id))create table people(id char(10) primary key,name char(10),age char(4),workePlace char(20),position char(10))
      

  4.   

    你说的外键影响什么意思
    表的创建
    create table department(id char(10) primary key, department_id char(10), department_name char(20), foreign key (id) references people(id)) create table people(id char(10) primary key,name char(10),age char(4),workePlace char(20),position char(10)) 
      

  5.   

    触发器不是这么用的,财你的需求给你个,看看是不是你要的create trigger pt2 
    on people for insert 
    as insert into department(department_id,department_name, id) 
    select 'a','经理室',min(id)
    from inserted i
    where i.position = '经理'
    and not exists ( select 1 from department where department_id ='a')insert into department(department_id,department_name, id) 
    select 'b','技术部门',min(id)
    from inserted i
    where i.position = '技术人员'
    and not exists ( select 1 from department where department_id ='b')insert into department(department_id,department_name, id) 
    select 'd','销售部门',min(id)
    from inserted i
    where i.position = '销售人员'
    and not exists ( select 1 from department where department_id ='d')insert into department(department_id,department_name, id) 
    select 'c','财务部门',min(id)
    from inserted i
    where i.position = '财务人员'
    and not exists ( select 1 from department where department_id ='c')go