我的一个 SQL Server 中有一个奇怪的问题。我Identity
在一列中有一个插入seq
id
,其中某个时间点是increased
数字2
而不是1
. 我的身份增量设置是一而不是二。列可能有什么问题Identity
?
问问题
119 次
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 回答