0

テーブルにトリガーを作成しようとしていemployeepayhistoryます。テーブルの列を更新するたびにRATE、月給への影響が表示されるはずですが、1 つのレコードを更新すると、レコード全体の月給が表示されます。助けてください。

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 に答える