gpt4 book ai didi

SQL 插入 ID 来自正在插入的行的 IDENTITY ID

转载 作者:行者123 更新时间:2023-12-02 01:07:36 24 4
gpt4 key购买 nike

我想知道,是否有直接的方法将 ID(在具有 IDENTITY(1,1) 的 ID 列生成)插入到另一列。换句话说,我正在寻找 SCOPE_IDENTITY() 我可以在插入时,而不是 INSERT 提交后。

我有一个表,其中有一个带有辅助 ID (SID) 的列,它引用同一个表中的行,在某些特殊情况下它引用自己。我知道这样做的唯一方法是在这些情况下执行 INSERT 和 UPDATE SID。简化示例:

DECLARE @ID INT
INSERT INTO Table (SID) VALUES (NULL);
SELECT @ID = SCOPE_IDENTITY();
UPDATE Table SET SID = ID WHERE ID = @ID;

有一些小问题,即由于该行可能会或可能不会引用自身等事实。

最佳答案

您可以使用 AFTER INSERT 触发器来执行此操作。在自引用的情况下,将列保留为 NULL,并让触发器将列设置为等于 IDENTITY 列。

伪:

  • 加入inserted的表,过滤SID为NULL的地方
  • 对于那些行,更新表并设置 SID = ID

如果不能使用 NULL 值,在应该可能根本没有引用的情况下,您可以使用另一个 stub 值。例如。 -1 如果 ID 总是正数。在这种情况下,应用上述工作方式并将 NULL 替换为 -1。

关于SQL 插入 ID 来自正在插入的行的 IDENTITY ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46885467/

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