2012-05-23 98 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()获取当前作用域中最后创建的标识值。下一个值会从中增加,但不能确定它会在您的范围内,另一个范围内或其他范围内。删除不会影响下一个值。

为什么你需要“下一个值”?