当前位置: 代码迷 >> Sql Server >> 大家伙儿都来看看一个关于触发器的代码吧,不胜感激
  详细解决方案

大家伙儿都来看看一个关于触发器的代码吧,不胜感激

热度:28   发布时间:2016-04-24 21:19:26.0
大家都来看看一个关于触发器的代码吧,不胜感激
/*为worker表创建一个更新触发器update_worker,
要求当更新worker表中职工的部门号时,
自动修改dapart表中相关部门的“部门人数”*/
CREATE TRIGGER trig_update_worker 
ON worker
FOR update 
AS 
update depart set dnum = dnum-1 
from deleted d ,dapart 
where dapart.dno=d.dno 

update dapart set dnum = dnum+1 
from inserted i,dapart 
where dapart.dno=i.dnoGO

下面更改worker
update worker set dno='2' where wno ='1'
但是提示有错误:
消息 208,级别 16,状态 1,过程 trig_update_worker,第 5 行对象名 'dapart' 无效。


很苦恼怎么回事呢,下面是创建表的代码大家可以给调试一下,先谢谢了

create table depart(
dno int primary key,
dname char(10) ,
)

create table worker(
wno int,
wanme char(8),
wsex char(2),
wbir datetime,
wiscom char(2),
wjobdate datetime,
dno int,
primary key(wno),
foreign key(dno) references depart(dno)
)

------解决方案--------------------
You use wrong table name in trigger, it should be depart not dapart
------解决方案--------------------
It's 'depart',don't 'dapart'.Please check up carefully!!!
------解决方案--------------------
表名写错了,dapart 替换成depart 即可
  相关解决方案