【发布时间】:2023-09-10 16:38:01
【问题描述】:
我正在尝试创建一个表,其中一行 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 开始
【问题讨论】:
标签: sql sql-server database tsql