Man*_*eld 6 sql-server entity-framework auto-increment identity sql-server-2012
我有一个使用以下 T-SQL 创建的表:
CREATE TABLE [dbo].[TableName](
[id] [int] IDENTITY(1,1) NOT NULL
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
我今天查看了这张表,注意到 id 列正在跳过值:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26、27、1027、1028、1029、1030、1031、1032、1033、1034、1035、2034、2035、3034
我不担心这个或任何事情(我的应用程序不关心主键是什么),我只是想知道可能导致这种情况发生的原因。似乎确实有一种模式,每次“跳跃”发生时跳跃 1000。
我的应用程序使用实体框架插入这些行,如果这有什么不同的话。
有很多事情会导致 IDENTITY 列中的空白(回滚、删除),但在这种情况下,由于跳转,我怀疑是这个错误 - 由引入 SEQUENCE 对 IDENTITY 的更改引起的:
所以我敢打赌,如果您查看 SQL Server 的错误日志,会在 SQL Server 服务重新启动、分离/重新附加数据库等后不久插入与这些跳转相关的行。
不过,真的,你为什么关心差距?你不应该。如果您需要连续的数字序列,请停止使用 IDENTITY。
归档时间: |
|
查看次数: |
36557 次 |
最近记录: |