我有两张桌子
EmpAssignment
EmpId | 位置编号 | 其他不相关的
和
每月交易
EmpID | 支付码 | 输入金额 | 和其他不相关的
我想要一个触发器(或任何有效的),如果:
1. 插入或更新某个 EmpID 的EmpAssignment.LocationNo值为 104 或 105,然后分别插入MonthlyTransaction.Paycode和MonthlyTransaction.InputAmount值为 35 和 12。
2. 插入某个EmpID的EmpAssignment.LocationNO,用值 204 或 205 更新,然后 分别用值 36 和 15 插入MonthlyTransaction.Paycode和MonthlyTransaction.InputAmount 。
现在更棘手的部分,MonthlyTransaction.EmpID是一个外键,这意味着,每个EmpID的行数不止一个,并且 Insert,更新应该只影响Paycode 35 或 36 和 InputAmount 12 或 15的EmpID行。
如果没有上面带有 Paycode 和 InputAmount的特定EmpID行,则触发器应插入否则更新。
到目前为止我在哪里:
CREATE TRIGGER tr_ProvincialAllowance
ON [dbo].[Empassignment]
FOR INSERT, UPDATE
AS
UPDATE M
SET Paycode = 35, InputAmnt = 12
FROM MonthlyTransaction AS M
INNER JOIN inserted E
ON E.EmpId = M.EmpId AND E.LocationNo = 104
上述触发器的问题之一是它将更新所有MonthlyTransaction。EmpID paycode 和 inputAmnt 与 35 和 12
我知道这有很多问题,但请有人救我。