2017-04-04 59 views
0

我有下面的代碼,其中我爲每行包含當前代碼和以前的代碼分配一個唯一的ID。它似乎工作正常,但我的問題是,如果我有一個新代碼更新的文件,我該如何恢復從它被遺漏的唯一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 

感謝

+0

爲什麼你的ID字段不是身份種子,所以你不必手動維護它們? – maSTAShuFu

回答

0

首先這種類型的列的應該是種子的身份或自動遞增。你不需要維護它們。

沒有什麼特別的,如果你有他們手動更新沒有理由的。

+0

感謝maSTA。我希望獨一無二的ID保持與其生命中的一排。如果我更新表,但行的順序不同,身份標識是否會更改? – Myx

+0

身份不會改變,如果您更改此字段的行爲,它將自動增加。如果截斷表格,它只會重置爲1。給它一個乾淨的石板截斷表,並根據你的順序插入行 – maSTAShuFu