Sql server 在回滚时将标识重新设定为第一个

Sql server 在回滚时将标识重新设定为第一个,sql-server,transactions,sql-server-2008-r2,Sql Server,Transactions,Sql Server 2008 R2,我有一个事务,它在一个表中插入几行 假设这样:我的表的最大ID为100,然后我需要再插入100行,最后最大ID为200。其他等待我的事务完成的事务,它们保留了201号,无论我的事务是否成功完成 回滚事务并没有帮助将ID重新设定为100,因为若我将identity语句置于事务之外,其他事务将具有更高的优先级,并且它们已经保留了201号 如果我的事务回滚,但在其他事务获取下一个ID之前,Hos是否将标识列重新设定为100 我希望我说得够清楚。我认为你不应该这样做 我不知道其他等待你完成的交易是如何预

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

假设这样:我的表的最大ID为100,然后我需要再插入100行,最后最大ID为200。其他等待我的事务完成的事务,它们保留了201号,无论我的事务是否成功完成

回滚事务并没有帮助将ID重新设定为100,因为若我将identity语句置于事务之外,其他事务将具有更高的优先级,并且它们已经保留了201号

如果我的事务回滚,但在其他事务获取下一个ID之前,Hos是否将标识列重新设定为100


我希望我说得够清楚。

我认为你不应该这样做

我不知道其他等待你完成的交易是如何预订201的。他们不知道身份正在被消费;他们只知道自己被封锁了


在任何情况下,在ID中有一个间隙都没有坏处。这就是身份的工作原理。你不应该试图改变它。

如果你需要一个没有间隙的序列,不要使用
IDENTITY
。它不是为此目的而设计的。为什么需要这个?另外,在Sql Server 2012中,