首先,我是新手,所以请耐心等待。
我有2个表ABC
(列A, B, C
)和ABCLogs
(oA, oB, oC, nA, nB, nC
)。我想在ABC
上写一个触发器,这样每当我插入,更新或删除ABC
中的任何值时,它都应该反映在相应列中的ABCLogs
中,并带有新值和旧值
注意:
nA
:表A
ABC
的新值
oA
:表A
ABC
的旧值
请告诉我任何进一步的信息。
由于
以下是完成:
SET @action = 'I'; -- Set Action to Insert by default.
IF EXISTS(SELECT * FROM DELETED)
BEGIN
SET @action =
CASE
WHEN EXISTS(SELECT * FROM INSERTED) THEN 'U' -- Set Action to Updated.
ELSE 'D' -- Set Action to Deleted.
END
END
ELSE
IF NOT EXISTS(SELECT * FROM INSERTED) RETURN;
如果@action ='我' INSERT INTO [dbo]。[nABC](nA,nB,nC)SELECT A,B,C FROM INSERTED
以上行只将新值更新为nABC,现在我想从A(ABC)中提取插入nA(nABC)的新值的旧值,我无法做到,是否存在从ABC中提取最后一个值的方法?