SQL Server触发器-一次更新一个字段,另一次更新一个字段是';t空
我对触发器还比较陌生,我正在尝试用Field2的值更新Field1,只要Field2在更新或插入时不为null。换句话说,我想保留“NonAccrual”中的第一个非null值,并将其存储在“OriginalNonAccrual”中。一旦OriginalNonAccrual获得一个值,即使NonAccrual发生更改,它也应该无限期保持不变。我不知道一个触发器是否可以同时处理插入和更新,希望下面的代码能让您了解我要做的事情。谢谢大家!SQL Server触发器-一次更新一个字段,另一次更新一个字段是';t空,sql,sql-server,database,triggers,Sql,Sql Server,Database,Triggers,我对触发器还比较陌生,我正在尝试用Field2的值更新Field1,只要Field2在更新或插入时不为null。换句话说,我想保留“NonAccrual”中的第一个非null值,并将其存储在“OriginalNonAccrual”中。一旦OriginalNonAccrual获得一个值,即使NonAccrual发生更改,它也应该无限期保持不变。我不知道一个触发器是否可以同时处理插入和更新,希望下面的代码能让您了解我要做的事情。谢谢大家! CREATE TRIGGER tr_SAG_Accrual
CREATE TRIGGER tr_SAG_Accrual
ON [dbo].[SAG]
AFTER INSERT, UPDATE
AS
BEGIN
Declare @NonAccrual date
Declare @OriginalNonAccrual date
Select @NonAccrual = NONACCRUAL_DATE
, @OriginalNonAccrual = OriginalNonAccrualDate
from inserted
IF @OriginalNonAccrual IS NULL AND NOT @NonAccrual IS NULL
SET @OriginalNonAccrual = @NonAccrual
END
不需要这些变量,只需执行以下操作
CREATE TRIGGER tr_SAG_Accrual
ON [dbo].[SAG]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE S
SET S.OriginalNonAccrualDate = i.NONACCRUAL_DATE
FROM [dbo].[SAG] S INNER JOIN inserted i
ON s.Pk_Column = i.Pk_Column --<-- Whatever your Primary key columns is
WHERE i.OriginalNonAccrualDate IS NULL
END
CREATE TRIGGER tr_SAG_
关于[dbo].[SAG]
插入后,更新
作为
开始
不计数;
更新
设置S.OriginalNonAccrualDate=i.NONACCRUAL\u日期
从[dbo].[SAG]插入的内部联接i
在s.Pk_列上=i.Pk_列--