0

SQLサーバーでは、更新用のトリガーを作成します。実際にサンプルトリガーを確認し、それを使用して勝ったトリガーを作成します。私はその引き金に疑いを持っています。私のトリガーは次のようになります:

 Create TRIGGER StudentScoresAfterUpdate
  ON StudentScores
 AFTER UPDATE
 AS
  IF ( UPDATE (Name) OR UPDATE (Score) )
   BEGIN
    INSERT INTO StudentScoresHist (Name, Score, HistoryDate)
     select Name, Score, getdate()
      from deleted ;
    END;

上記のトリガーで、なぜ作成者がif条件IF ( UPDATE (Name) OR UPDATE (Score) )を書き込むことができますか?if条件なしで書き込むことができますか?

4

2 に答える 2

0

これは確かにドキュメントからは明らかではないトリガー関数です( CREATE TRIGGERからリンクされているようには見えません)。

于 2012-05-03T09:46:56.710 に答える
0

なぜ著者は if 条件IF ( UPDATE (Name) OR UPDATE (Score) )を書くのですか? if 条件なしで書くことができますか?

テーブルで更新が行われると、更新トリガーが起動します。多数の列を含むテーブルの場合、特定の列が更新される場合に実行されるトリガーの一部のみに関心がある場合があります。それが、UPDATE関数が決定できるものです。

無条件で書けますか?はい、もちろん。

于 2012-05-03T10:03:11.430 に答える