如何创建一个触发器,如果插入或更新的行不为空,将更新列?



表为EmployeeTest列EmployeeCode有一个唯一索引,它可以允许NULL,但不能重复。它是varchar (16)

我想更新EffectiveDate列

我想创建一个触发器,每当我插入或更新表中的一行时,如果EmployeeCode为NULL,则不更新effecvedate。

如果创建或更新了一行,并且EmployeeCode不为空,我希望更新触发器将EffectiveDate设置为GETDATE()

我想让它更新的有效性日期只是行被编辑或插入。

我不能让这个工作。我总是在单词"EmployeeCode"附近看到"语法不正确">

有谁能帮我一下吗?
After Update, Insert
AS BEGIN
IF @@ROWCOUNT = 0 RETURN
SET NOCOUNT ON;
IF COLUMN EmployeeCode = NULL RETURN;
UPDATE EmployeeTest
Set EffectiveDate = GETDATE()
FROM EmployeeTest D
join inserted i on D.id = i.id
END

您可以简单地只更新具有非空值的行:

update t set EffectiveDate = Getdate()
from inserted i join EmployeeTest t on t.id = i.id
where i.EmployeeCode is not null;

并删除If列行。

最新更新