我想知道,是否有一种直接的方法可以将 ID(在 ID 列中使用 IDENTITY(1,1) 生成)插入另一列。换句话说,我正在寻找 SCOPE_IDENTITY() 我可以在 insert 时获得,而不是在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;
存在一些故障,即由于该行可能会或可能不会引用自身等事实。