0

2つのテーブル:

    Customer: Cus_ID, Status
    Payment: Pay_ID, Cus_ID, PaidOrNot

要件は、「はい」を「PaidOrNot」に設定してから、顧客ステータスを「VIP」に自動的に設定する場合です。

    CREATE TRIGGER AutoVIP

    AFTER UPDATE OR INSERT ON Payment

    BEGIN

        IF PaidOrNot = Yes
        THEN UPDATE Customer set Status = VIP

    END

私はSQL構文に精通していません。このトリガーは機能していないようですが、修正を手伝ってもらえますか?ありがとう。

4

2 に答える 2

1

SQL Server の場合は、以下を試してください。

 CREATE TRIGGER AutoVIP
 ON Payment
 AFTER UPDATE, INSERT
 AS 
   BEGIN
     DECLARE @paid VARCHAR(5)
     DECLARE @custId INT
     SET @paid = (SELECT PaidOrNot FROM INSERTED)
     SET @custId = (SELECT Cus_ID FROM INSERTED)
     IF @paid = 'Yes'
     BEGIN
       UPDATE Customer set Status = 'VIP'
        where Cus_ID = @custId;
     END;
 END;
于 2012-11-22T23:51:18.107 に答える
1

これを試すとどうなりますか?

私は意図的にそれを可能な限り自明にするように努めました。

CREATE TRIGGER AutoVIP
ON Payment
AFTER INSERT, UPDATE
AS
BEGIN
  DECLARE @PaidOrNot VARCHAR(3) -- Or whatever datatype it is really
  DECLARE @CustomerId INT -- Or whatever datatype it is
  SET @PaidOrNot = (SELECT PaidOrNot FROM INSERTED)
  SET @CustomerId = (SELECT Cus_ID FROM INSERTED)
  IF @PaidOrNot = 'Yes'
  BEGIN
    UPDATE Customer set Status = VIP WHERE Cus_ID = @CustomerId
  END
END
于 2012-11-23T00:10:48.653 に答える