我的一个SQL Server中有一个奇怪的问题。我在Identity
seq
列中插入了id
,其中某个时间点increased
由2
数字而不是1
。我的身份增量设置不是两个。 Identity
列可能存在什么问题?
答案 0 :(得分:6)
IDENTITY值不保证是连续的。由于回滚,删除等原因,您可能会丢失数字。
CREATE TABLE #d(ID INT IDENTITY(1,1));
INSERT #d DEFAULT VALUES;
BEGIN TRANSACTION;
INSERT #d DEFAULT VALUES;
ROLLBACK TRANSACTION;
INSERT #d DEFAULT VALUES;
SELECT ID FROM #d;
DROP TABLE #d;
结果:
ID
----
1
3
如果您需要您的值是连续的,请停止使用IDENTITY列。
答案 1 :(得分:2)
这是因为您有一些未提交的插入,因此将计算这些插入的标识。