0

在 Sql server 中,我为更新编写了一个触发器,实际上我看到了一个示例触发器,并使用它编写了我赢得的触发器。我对那个触发器有疑问。我的触发器是这样的:

 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 回答