IF UPDATE(column):用于测试在指定的列上进行的INSERT或UPDATE操作,不能用于DELETE操作。可以指定多列。因为在ON子句中指定了表名,所以在IF UPDATE子句中的列名前不要包含表名。若要测试在多个列上进行的INSERT或UPDATE操作,请在{dy}个操作后指定单独的UPDATE(column)子句。在INSERT操作中,IF UPDATE高尔夫球返回TRUE值,因为这些列插入了显式值或隐性值(NULL)。
IF (COLUMNS_UPDATED()):用于测试是否插入或更新了所涉及的列,仅用于INSERT或UPDATE触发器中。
USE pubs
IF EXISTS(SELECT name FROM sysobjects WHERE name='reminder' AND type='TR')
DROP TRIGGER reminder
GO
CREATE TRIGGER reminder
ON titles
FOR INSERT,UPDATE
AS sql_statements
GO
USE test
CREATE TABLE score
(
student_no int,
score int
)
IF EXISTS(SELECT name FROM sysobjects WHERE name='check_score' AND type='TP')
DROP TRIGGER check_score
GO
CREATE TRIGGER check_score
ON score
FOR INSERT,UPDATE
AS
DECLARE @score int
SELECT @score=score FROM inserted
IF @score<0 OR @score>100
BEGIN
ROLLBACK
RAISERROR('成绩必须在0到100之间!',16,1)
END
GO