0

我正在尝试在employeepayhistory桌子上创建一个触发器。每当我更新RATE表中的列时,它对月薪的影响应该显示出来,但是如果我更新一条记录,它会给我整条记录的月薪。请帮忙。

CREATE TRIGGER MONTHTRG
ON HumanResources.EmployeePayHistory
FOR UPDATE
AS
BEGIN
   DECLARE @Rate MONEY
   SELECT @Rate=Rate FROM INSERTED
   SELECT 'MONTHSAL'=Rate*PayFrequency*30 FROM HumanResources.EmployeePayHistory
END
4

1 回答 1

0

你还需要给出 where 条件,通常你会

DECLARE @Id bigint
SET @Id = (SELECT Id from Inserted)
SELECT 'MONTHSAL' = Rate * PayFrequency*30 From HumanResources.EmployeePayHistory where Humanresources.EmployeeID=@Id

如果主键被称为“Id”并且当然是唯一的,这将起作用。您也可以使用唯一键(应该是非 NULL)来执行此操作

于 2013-01-31T19:37:03.710 回答