-2

我的一个 SQL Server 中有一个奇怪的问题。我Identity在一列中有一个插入seq id,其中某个时间点是increased数字2而不是1. 我的身份增量设置是一而不是二。列可能有什么问题Identity

4

2 回答 2

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 列。

于 2013-11-11T17:24:40.133 回答
2

这是因为您有一些未提交的插入,因此这些插入的身份将被计算在内。

于 2013-11-11T17:25:11.567 回答