gpt4 book ai didi

sql-server - 触发器是否能够复制作为身份 ID 的主键?

转载 作者:行者123 更新时间:2023-12-01 08:38:28 24 4
gpt4 key购买 nike

我想在表 X 中的 INSERT 之后立即将该记录复制到另一个 History 表中。

现在表的主键作为 Identity 列,所以记录在实际插入之前不会有主键 id。

我的问题是,如果我对此记录执行 trigger,我会得到该记录的身份 ID 还是仍为空白?

最佳答案

是的,该身份在触发器中可用,但请确保您正确获取该 ID。

@@identity、SCOPE_IDENTITY 等不是您想要在触发器中执行的操作!

SELECT @id = id FROM inserted 

也是个坏主意。

始终编写触发器以期望同时进行多项更改。当您一次向表中插入多条记录时,上述方法都会导致细微但重要的错误。

正确的做法是从插入的表中插入你的审计表

INSERT INTO myAuditTable(Id, Datetime, user)
SELECT id, GETDATE(), USER_NAME())
FROM inserted

关于sql-server - 触发器是否能够复制作为身份 ID 的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931748/

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