在触发器里,有时候我们要判断更新的是不是某列,这个时候就可以使用 UPDATE()。
测试:
USE SKY
SELECT * FROM dbo.Employee
IF EXISTS(
SELECT name
FROM sys.objects
WHERE name='UpdateTrigger'
AND type='TR')
DROP TRIGGER UpdateTrigger
-- UPDATE(COLUMNNAME) 函数的使用,如果 更新的 是 指定的COLUMN,就会返回 TRUE
GO
CREATE TRIGGER UpdateTrigger
ON Employee
AFTER UPDATE
AS
IF(UPDATE(ENumber))
RAISERROR(13000,16,10)
--执行 Update ENumber 就会抛出错误提示
UPDATE dbo.Employee SET ENumber='3110008279' WHERE ENumber='3110008280'