IDENTITY_INSERT 设置为 OFF?

zey*_*zey 2 sql-server primary-key

这是我的数据库脚本,

CREATE TABLE [dbo].[MyTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Code] [nvarchar](25) NULL,
[Name] [nvarchar](25) NULL,
[dob] [date] NULL ,
 CONSTRAINT [PK_MyTable] 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)

当我插入时,出现此错误

Cannot insert explicit value for identity column in table 'MyTable' when   
IDENTITY_INSERT is set to OFF.
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

JaM*_*eEL 5

当列被定义为 IDENTITY 时,您不应将其包含在 SQL Server 自己将插入值的插入语句中。

    INSERT INTO MYTABLE([CODE],[NAME],[DOB]) VALUES (123,'BOND','01-04-1971')
Run Code Online (Sandbox Code Playgroud)

如果您查看插入语句 ID 列丢失,但在执行此语句时仍会获得一个递增的值。