我有更新語句和AFTER更新觸發器。更新語句發生在一個循環中,當我沒有使用集合函數或選擇觸發器,然後觸發器正常工作時,我把聚合函數或選擇然後是取最後一個插入的值,並更新所有匹配給定條件的行SQL循環更新和更新後觸發與聚合函數
ALTER TRIGGER UpdateGrossPay
ON DailyClocking
AFTER UPDATE
AS
UPDATE Daily
SET GrossPay=(SELECT PayRate FROM inserted WHERE
Daily.ClockDate=inserted.ClockDate)
GO
我需要的select語句,因爲我不得不使用聚合函數就可以了 這功能是
SET GrossPay=((SELECT (sum(datediff(minute, 0,inserted.TotalHours)))/60.0
FROM inserted WHERE Daily.ClockDate=inserted.ClockDate)*(SELECT PayRate from inserted))
幫我做到這一點。對不起,我是新來觸發
編輯
ALTER TRIGGER UpdateGrossPay
ON DailyClocking
AFTER UPDATE
AS
DECLARE @rs int;
SET @rs=10
UPDATE DailyClocking
SET [email protected]*PayRate
GO
這不需要更新的條件。什麼都更新的行則觸發器將更新同一行與該行PayRate此觸發工作正常
EDIT 2
ALTER TRIGGER GrossPay
ON Daily
AFTER UPDATE
AS
UPDATE Daily
SET GrossPay=(datediff(minute, 0, Daily.TotalHours)/60.0)*Daily.PayRate
FROM Daily,inserted
WHERE
Daily.ClockDate=inserted.ClockDate
AND
Daily.HId=inserted.HlId
AND
Daily.RId=inserted.RId
'... pdating所有匹配給定condition'哪裏是你的條件的行?你的觸發器將更新你的表中的所有行。 –
實際上它應該更新所有的行,但它應該採取相同的行值沒有最後插入 – aas
不,不應該。觸發更新所有表格「插入」的計數時間。 –