连接2个表以进行INSERT UPDATE和DELETE

时间:2016-08-22 05:24:57

标签: sql sql-server

首先,我是新手,所以请耐心等待。

我有2个表ABC(列A, B, C)和ABCLogsoA, 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中提取最后一个值的方法?

0 个答案:

没有答案