我想知道是否有一种直接的方法将ID(使用IDENTITY(1,1)在ID列中生成)插入到另一个列中。
换句话说,我正在寻找在插入时获取SCOPE_IDENTITY(),而不是在INSERT提交后获取。
我有一个表格,其中有一个带有次要ID(SID)的列,它引用来自同一表格的行,在某些特殊情况下,它会引用自身。
我所知道的唯一方法是执行INSERT,然后在这些情况下更新SID。简化示例:
DECLARE @ID INT
INSERT INTO Table (SID) VALUES (NULL);
SELECT @ID = SCOPE_IDENTITY();
UPDATE Table SET SID = ID WHERE ID = @ID;
有一些故障,例如由于该行可能引用自身等原因。