捕获两列的更改 - SQL Server
创始人
2024-12-25 04:30:10
0

在SQL Server中,可以通过使用触发器来捕获两列的更改。下面是一个包含代码示例的解决方法:

首先,创建一个表来存储更改的历史记录。该表将记录更改前后的值以及更改发生的时间。例如,可以创建一个名为ChangeHistory的表,包含以下列:

CREATE TABLE ChangeHistory (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    TableName VARCHAR(100),
    ColumnName VARCHAR(100),
    OldValue NVARCHAR(MAX),
    NewValue NVARCHAR(MAX),
    ChangeDate DATETIME
)

接下来,创建一个触发器在更改目标表中的两列发生更改时被触发。例如,如果目标表名为YourTable,两列分别为Column1Column2,则可以创建以下触发器:

CREATE TRIGGER CaptureChanges
ON YourTable
AFTER UPDATE
AS
BEGIN
    IF UPDATE(Column1) OR UPDATE(Column2)
    BEGIN
        INSERT INTO ChangeHistory (TableName, ColumnName, OldValue, NewValue, ChangeDate)
        SELECT 
            'YourTable',
            CASE
                WHEN UPDATE(Column1) THEN 'Column1'
                WHEN UPDATE(Column2) THEN 'Column2'
            END,
            d.Column1,
            i.Column1,
            GETDATE()
        FROM deleted d
        INNER JOIN inserted i ON d.PrimaryKeyColumn = i.PrimaryKeyColumn -- 用于链接原始值和新值的主键列
        WHERE
            (UPDATE(Column1) AND d.Column1 <> i.Column1) OR
            (UPDATE(Column2) AND d.Column2 <> i.Column2)
    END
END

触发器将在YourTable表的Column1Column2被更新时被触发。它将在ChangeHistory表中插入一条记录,记录更改前后的值以及更改发生的时间。

请注意,上述示例中的触发器假设目标表具有一个主键列,用于将原始值和新值进行匹配。如果目标表没有主键列,您可以根据具体情况将触发器进行修改,以使用其他唯一标识列或组合列来链接原始值和新值。

相关内容

热门资讯

2026版辅助挂!黑科技软件大... 2026版辅助挂!黑科技软件大全(辅助)竟然真的是有辅助攻略(真实有挂)1、黑科技软件大全模拟器是什...
2026版技巧!大众互娱脚本(... 2026版技巧!大众互娱脚本(辅助)切实存在有辅助神器(有挂解惑)1、大众互娱脚本免费脚本咨询教程、...
近日!边锋嘉兴辅助(辅助)切实... 近日!边锋嘉兴辅助(辅助)切实是真的有辅助脚本(有挂规律)所有人都在同一条线上,像星星一样排成一排,...
一直以来!上饶窝龙辅助(辅助)... 一直以来!上饶窝龙辅助(辅助)切实真的是有辅助技巧(有挂分享)1、许多玩家不知道上饶窝龙辅助辅助怎么...
明白辅助挂!开心斗一番破解版(... 明白辅助挂!开心斗一番破解版(辅助)总是真的是有辅助插件(有挂教学)1、在开心斗一番破解版插件功能辅...
无独有偶!花花生活圈怎么开挂(... 无独有偶!花花生活圈怎么开挂(辅助)果然存在有辅助神器(竟然有挂)该软件可以轻松地帮助玩家将花花生活...
2026版软件!山西扣点免费辅... 2026版软件!山西扣点免费辅助(辅助)本来存在有辅助脚本(详细教程)暗藏猫腻,小编详细说明山西扣点...
黑科技攻略!悟空大厅辅助(辅助... 黑科技攻略!悟空大厅辅助(辅助)切实真的是有辅助攻略(真的有挂);1、不需要AI权限,帮助你快速的进...
2026版总结!微信小程序辅助... 2026版总结!微信小程序辅助新天道辅助(辅助)一直是有辅助技巧(有挂功能)1、点击下载安装,微信小...
第三方辅助挂!三哥玩辅助器软件... 第三方辅助挂!三哥玩辅助器软件(辅助)果然是真的有辅助软件(有挂教学)1)三哥玩辅助器软件辅助插件:...