我正在尝试创建一个包含id = 0的行的表,但是标识插入列从1,1开始,所以以下所有使用标识插入
我必须执行
DBCC CHECKIDENT ('Foo', RESEED, 0);
在我手动插入(使用脚本)以使下一行具有id = 1之后 是否有另一种方法来获取我的第一行的id = 0,这是来自插入脚本,所有其他的跟随从1开始,所以我不必调用dbcc checkident
创建下表
CREATE TABLE [dbo].[Foo](
[Id] [int] IDENTITY(1,1) NOT NULL,
[CreatedAt] [datetime] NOT NULL CONSTRAINT DF_Foo_CreatedAt DEFAULT getdate(),
[ModifiedAt] [timestamp] NOT NULL,
[Code] [nvarchar](50) NOT NULL,
[Name] [nvarchar](50) NULL,
CONSTRAINT [PK_Foo] PRIMARY KEY CLUSTERED
(
[Id] ASC
) ON [PRIMARY]
) ON [PRIMARY]
我想要一个id = 0的行,所以我运行下面的
SET IDENTITY_INSERT [dbo].[Foo] ON;
INSERT INTO [dbo].[Foo] ([Id],[Code],[Name]) VALUES (0, 'Default', 'Regular');
SET IDENTITY_INSERT [dbo].[Foo] OFF;
然后我必须执行
DBCC CHECKIDENT('Foo',RESEED,0);
让所有后续插入从1开始
答案 0 :(得分:4)
本,
根据我的理解,您希望标识列以0而不是1开始?
如果这是您想要的,您必须更改初始种子IDENTITY(种子,增量)
将创建表更改为:
[Id] [int] IDENTITY(0,1)NOT NULL,
答案 1 :(得分:0)