SQL 触发器将更新更改复制到另一个 table

SQL Triggers to duplicate update changes to another table

所以我有一个间歇性问题,需要临时修复。

(某些问题导致间歇性出现两个 table 问题(每 3-4 周一次))

一个 table 被完全清除,另一个似乎删除了个人记录...

由于这是一个持续存在的问题,我们仍在调查主要原因,但需要临时修复。

因此我已经为每个 table 设置了第二个 "Backup" table 并且正在尝试设置触发器以复制所有插入和更新命令

我已经毫无问题地创建了插入触发器。

ALTER Trigger [dbo].[MainInsertBackup] 
On [dbo].[tblMain] AFTER INSERT AS 
BEGIN 
    INSERT INTO tblMainBackup 
    SELECT * FROM inserted 
END

现在我需要一个对更新执行相同操作的触发器(在 tblMainBackup 上执行更新)。

通过这种方式,我应该确保备份 table 具有来自主文件的所有信息,但是如果某个记录以某种方式被删除,它可以从备份 table 复制回主文件 table。

只有我发现的示例在更新时在各个字段中执行更新,或者将更新时的全新记录插入到日志中 table。

欢迎提供任何帮助。

您可以尝试使用此 UPDATE 触发器更新 tblMainbackup 中的行,同时更新 tblMain 中的行 table

CREATE Trigger [dbo].[MainUpdateBackup] 
On [dbo].[tblMain] AFTER UPDATE AS 
BEGIN     
    UPDATE tblMainbackup
    SET tblMainbackup.col1 = i1.col1,
        tblMainbackup.col2 = i1.col2,
        tblMainbackup.col3 = i1.col3    
    FROM tblMainbackup t1
          INNER JOIN inserted i1
          ON t1.Id = i1.ID
END