zey*_*zey 3 sql-server identity-column
这是我的db脚本,
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)
我该如何解决?
小智 12
您正在尝试为标识列分配显式值,而不是在插入数据时让数据库创建一个.
你正在做的事情:
insert into MyTable (Id, Code, Name, dob) VALUES (1, 'XXX', 'xxx', 'xxx', somedate)
Run Code Online (Sandbox Code Playgroud)
代替
insert into MyTable(Code, Name, dob) VALUES ('xxx', 'xxx', somedate)
Run Code Online (Sandbox Code Playgroud)
根据Rafeel的建议,您不需要insert在Identity列中显式赋值.但是,如果您删除了一行并想要一个具有相同ID值的行.然后你可以做到以下几点:
SET IDENTITY_INSERT MyTable ON
insert into MyTable (Id, Code, Name, dob)
VALUES (OldIdValue, 'XXX', 'xxx', 'xxx', somedate)
SET IDENTITY_INSERT MyTable OFF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24458 次 |
| 最近记录: |