向现有表添加其他唯一行ID

时间:2017-04-04 03:59:26

标签: sql sql-server tsql

我有以下代码,我为每行分配一个唯一的ID,其中包含当前代码和以前的代码。它似乎工作正常,但我的问题是,如果我有一个带有新代码的更新文件,如何从中断的位置恢复唯一ID?

例如,如果我添加这些额外的行,如何填充以黄色突出显示的下面的ID?

Example

CREATE PROCEDURE [dbo].[PI_Key_Create_Update]   AS
BEGIN
Truncate Table RB_PI_Key_Assign
Truncate Table RB_PI_Key_Link

INSERT INTO RB_PI_Key_Assign
SELECT 
ROW_NUMBER() OVER (ORDER BY RB_Code_L) AS PI_Key
, RB_Code_L
, RB_Code_L_P
FROM Stage_RB_Previous

INSERT INTO RB_PI_Key_Link
SELECT 
  a.PI_Key
, b.PI_Key as PI_KEY_P
, a.RB_Code_L
, a.RB_Code_L_P

FROM RB_PI_Key_Assign a LEFT JOIN RB_PI_Key_Assign b ON (a.RB_Code_L_P=b.RB_Code_L) 

END

由于

1 个答案:

答案 0 :(得分:0)

首先,这种类型的列应该是标识种子或自动增量。你不需要维护它们。

如果你没有任何理由手动更新它们,没有什么特别的。