一个SQL触发器的问题.请帮忙!谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:52:02
我有一个触发器,如果Effect字段为1时,就更新另一张表的Salary字段.但为何有多条记录的Effect字段都被更新为1时,却只更新一条Salary记录呢?触发器如下:
CREATE trigger tg_raises
on dbo.Raises
for insert,update
as
declare @Employeeid int
declare @Effect int
declare @NewSalary int

select @NewSalary=NewSalary,@Effect=Effect,@Employeeid=Employeeid from inserted
if @Effect=1
begin
update employeesalary set Salary=@NewSalary where Employeeid=@Employeeid
end
试过不要Employeeid=@Employeeid,但这样的话,只要有一条记录的Effect更新为1时,所有记录的Salary都会被更新

加薪表:
id oldsalary newsalry effect
1 2000 3000
2 3000 4000
薪资表:
id salary
1 2000
2 3000
当effect=1时,把Newsalary更新到薪资表的salary.如果一次只更新一条记录就可以,但如果我把加薪表的effect的值同时更新为1时,就只能更新一条了

谢谢你的帮忙,但还是不行哦.当我把effect更新为1时,薪资表的salary并没有更新.

能把两个表的结构发出来看看吗?帮你写一个。
CREATE trigger tg_raises
on 加薪表
for update
as
declare @Employeeid int
declare @Effect int
declare @NewSalary int
select @Effect=Effect,@Employeeid=id from DELETED
select @NewSalary=NewSalary from inserted
if @Effect=1
begin
update 薪资表 set Salary=@NewSalary where id=@Employeeid
end