0

我的一个表包含一个自动编号字段 ShiftPk ,我将其用作该表的主键,但是当我将值插入记录时,生成的主键不是顺序的

我知道自动编号不必总是按顺序排列,但我所有其他自动编号都按顺序工作请在下面找到我的脚本,如果我有任何问题,请提供建议

   ****** 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

是什么让这个表自动编号与其他的不同

4

2 回答 2

0

我想我发现了问题..任何失败的尝试插入也正在消耗一个标识符

例如,如果我插入 1 2 3 然后插入失败

然后如果我插入下一个它的标识符是

5

于 2013-04-23T12:37:22.103 回答
0

数据是如何插入到表中的?我怀疑您的身份列中是否存在空白,例如,它如下所示:

1
2
5
6
8
9
10
15

...这可能是在将数据插入表时出现错误的症状。您能否将有关更新过程的更多信息添加到您的OP.

正如评论所说 - 它肯定是连续的,但可能存在差距。如果您需要向自己证明它们是连续的,您可以添加一个 DateTime 字段,例如“WhenUpdated”吗?

于 2013-03-09T11:07:41.047 回答