1. update()
返回一个布尔值,指示是否对表或视图的指定列进行了 INSERT 或 UPDATE 尝试。
在 SQL Server 2000 中,UPDATE() 不检测对时间戳列的更改。对于这些列,触发器主体中的 IF UPDATE() 子句将返回 FALSE,而不考虑是否已更新列。在 SQL Server 2008 和 SQL Server 2005 中,UPDATE() 将检测对时间戳列的更改。如果这些列已更新,则 DML 触发器主体中的 IF UPDATE() 子句将返回 TRUE。 |
指定某列时,触发触发器执行操作
USE AdventureWorks2008R2; GO IF EXISTS (SELECT name FROM sys.objects WHERE name = 'reminder' AND type = 'TR') DROP TRIGGER Person.reminder; GO CREATE TRIGGER reminder ON Person.Address AFTER UPDATE AS IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) ) BEGIN RAISERROR (50009, 16, 10) END; GO
COLUMNS_UPDATED 针对多列执行的 UPDATE 或 INSERT 操作的进行测试。功能类似于UPDATE()