求助~sql 两张结构相同的表,当A表中的某个字段发生变化时,B表中的字段更新成相对应的值。
如题,用触发器也可以,上图比较明显,请看图:A表B表的结构和A表一样,如图所示,如果A表的某个人部门发生变化,那么B表的部门也更着变化,这个语句updatezdyempl...
如题,用触发器也可以,上图比较明显,请看图:
A表B表的结构和A表一样,如图所示,如果A表的某个人部门发生变化,那么B表的部门也更着变化,这个语句update zdyemployee set depid= e.depid ,depname=e.depname from eHR_DB_Employee e join zdyemployee z on z.empid=e.empid 能够实现将部门和部门编码字段重新update一下,但是我不想弄成每次都全部update 有没有方法能实现,只是更改不同的,不要更改相同的?谢谢~,触发器也可以,怎么写,大家指导下?最好是存储过程,谢谢~~~,好的话,我会追加~~~ 展开
A表B表的结构和A表一样,如图所示,如果A表的某个人部门发生变化,那么B表的部门也更着变化,这个语句update zdyemployee set depid= e.depid ,depname=e.depname from eHR_DB_Employee e join zdyemployee z on z.empid=e.empid 能够实现将部门和部门编码字段重新update一下,但是我不想弄成每次都全部update 有没有方法能实现,只是更改不同的,不要更改相同的?谢谢~,触发器也可以,怎么写,大家指导下?最好是存储过程,谢谢~~~,好的话,我会追加~~~ 展开
2个回答
展开全部
没看到图片。就先给你个例子:
create trigger trig_change_eHR_DB_Employee
after update
on eHR_DB_Employee
as
DECLARE @empid varchar(45),@depid varchar(45),@depname varchar(45)
select @empid = empid , @depid=depid,@depname=depname from inserted #此处引用的字段是先被修改的表的“部门”对应字段
update zdyemployee set depid=@depidwhere depname=@depname where empid = @empid
#其他对应的名称需要你自行修改对应。
create trigger trig_change_eHR_DB_Employee
after update
on eHR_DB_Employee
as
DECLARE @empid varchar(45),@depid varchar(45),@depname varchar(45)
select @empid = empid , @depid=depid,@depname=depname from inserted #此处引用的字段是先被修改的表的“部门”对应字段
update zdyemployee set depid=@depidwhere depname=@depname where empid = @empid
#其他对应的名称需要你自行修改对应。
更多追问追答
追问
完了说了。。。_eHR_DB_Employee
是个视图,在视图上创建触发器好像不行哎
追答
视图是不能创建触发器的,只能在表上创建。
你可以在原始表上创建呀。
展开全部
create trigger tig_change_pwd after update on zdyemployee
as
DECLARE @userName varchar(45),@pwd varchar(45)
select @depid=depid,@depname=depname
from inserted
update zdyemployee set depid=@depidwhere depname=@depname
as
DECLARE @userName varchar(45),@pwd varchar(45)
select @depid=depid,@depname=depname
from inserted
update zdyemployee set depid=@depidwhere depname=@depname
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询