我的一個表中包含一個自動編號費爾德ShiftPk,使用該表的主鍵哪個(IAM),但是當我插入的值的記錄生成主鍵是不按順序的Autonumbers不按順序產生
我知道自動編號neednot總是順序,但我所有的其他汽車號碼按順序工作請在下面找到我的劇本和建議如有問題是從我的一部分
****** Object: Table [dbo].[ShiftMasterNew_tbl] Script Date: 03/09/2013 13:21:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[ShiftMasterNew_tbl](
[ShiftPK] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[ShiftName] [varchar](50) NOT NULL,
[Duration] [numeric](18, 0) NULL,
CONSTRAINT [PK_ShiftMasterNew_tbl] PRIMARY KEY CLUSTERED
(
[ShiftPK] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_ShiftMasterNew_tbl] UNIQUE NONCLUSTERED
(
[ShiftName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
就是使別人
'IDENTITY'產生**連續數字** - 下一個總是比前一個大電子 - 但它使**不能保證**這些數字之間沒有任何差距。可能存在差距 - 那又如何?數字確實在不斷增加 - 其他任何事情都不相關是很重要的。 – 2013-03-09 09:38:52
那麼增量設置爲'1',因此它們應該按順序生成。你看到的差距可能是由於失敗(回滾)插入或刪除的行。在2012年,[服務器重新啓動後]也可能出現缺口(https://connect.microsoft.com/SQLServer/feedback/details/739013/alwayson-failover-results-in-reseed-of-identity)爲什麼這很重要?你不能依賴'IDENTITY'值是連續的。 – 2013-03-09 09:38:56
http://weblogs.sqlteam.com/peterl/archive/2009/03/10/How-to-efficiently-reuse-gaps-in-identity-column.aspx – Arshad 2013-03-09 09:45:32