在ROLLBACK的情况下,将IDENTITY重新设置为First

时间:2013-12-24 13:52:19

标签: sql-server transactions sql-server-2008-r2

我有一个事务,它在一个表中插入几行。

我们这样说:我的表的最大ID为100,然后我需要插入另外100行,其中最后的最大ID为200.其他交易等待我的交易完成,他们保留号码201,无论我交易成功与否。

回滚事务无法将ID重新设置为100,因为如果我将身份语句放在事务外部,则其他事务具有更高的优先级,并且它们已经保留了数字201.

如果我的事务回滚,但在其他事务处理下一个ID之前,要将身份列重新设置为,即100?

我希望我足够清楚。

1 个答案:

答案 0 :(得分:0)

我认为你不应该这样做。

我不确定等待你完成的其他交易如何保留201.他们不知道身份被消耗了;他们只知道他们被封锁了。

在任何情况下,ID都有差距没有坏处。这就是身份的运作方式。你不应该试图改变它。