2012-05-23 40 views
0

我在我的表class中有一個自動生成列ID。在插入時,我想獲取假設爲該列生成的自動ID的值,同時插入並連續插入到作爲6位唯一密鑰的REF列中的值。如何獲取自動生成列的下一個ID

我如何找到要生成的下一列的ID,很容易將1添加到前一個ID但是如果刪除了以前的id,該怎麼辦?請幫我理解如何解決這個問題。

我不希望ID被刪除的項目被賦予一個新的項目。

+0

我不認爲有一種方法來獲取下一個ID,因爲如果您獲取該ID並且另一個進程在同一時間獲取該ID,會發生什麼情況。數據庫是否應該返回兩個相同的ID? 你可以做的是獲取剛剛插入的行的ID,並基於那個UPDATE引用列在另一個查詢! –

+1

你**不能** - 期限。直到您將該行實際插入表格中爲止,「IDENTITY」列的值爲** NOT **。在實際插入行之前,您無法提前確定該值。 –

回答

2

您可以使用SCOPE_IDENTITY()獲取當前作用域中最後創建的標識值。下一個值會從中增加,但不能確定它會在您的範圍內,另一個範圍內或其他範圍內。刪除不會影響下一個值。

爲什麼你需要「下一個值」?