首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-07-04 
大家都来看看一个关于触发器的代码吧,不胜感激/*为worker表创建一个更新触发器update_worker,要求当更新wo

大家都来看看一个关于触发器的代码吧,不胜感激
/*为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 即可

热点排行