gpt4 book ai didi

sql - 触发插入旧值-已更新的值

转载 作者:行者123 更新时间:2023-12-03 01:40:06 25 4
gpt4 key购买 nike

我需要在 SQL Server 2008 中创建触发器,将其中某些值更改为日志表的一行中的所有值插入!

例如,如果我有表Employees,其中包含列id、name、password,并且我更新此表并为列名称插入新值,那么我需要在表Log中更新后插入表Employees中的值。

我怎样才能做到这一点?谢谢!

最佳答案

在触发器中,您有两个可用的伪表:InsertedDeleted,其中包含这些值。

在更新的情况下,Deleted 表将包含旧值,而 Inserted 表包含新值。

因此,如果您想在触发器中记录 ID、OldValue、NewValue,您需要编写如下内容:

CREATE TRIGGER trgEmployeeUpdate
ON dbo.Employees AFTER UPDATE
AS
INSERT INTO dbo.LogTable(ID, OldValue, NewValue)
SELECT i.ID, d.Name, i.Name
FROM Inserted i
INNER JOIN Deleted d ON i.ID = d.ID

基本上,您加入 InsertedDeleted 伪表,获取 ID(我认为在这两种情况下是相同的)、旧值Deleted 表、Inserted 表中的新值,并将所有内容存储在 LogTable

关于sql - 触发插入旧值-已更新的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com