insert into Student
values('1', 'joedio', 'newyark', GETDATE())
当我尝试运行这个 SQL 时,出现了以下错误信息:
只有在使用列列表并开启 IDENTITY_INSERT 时,才能为表 'Student' 中的身份列指定显式值。
insert into Student
values('1', 'joedio', 'newyark', GETDATE())
当我尝试运行这个 SQL 时,出现了以下错误信息:
只有在使用列列表并开启 IDENTITY_INSERT 时,才能为表 'Student' 中的身份列指定显式值。
IDENTITY_INSERT ON
,如下所示,它将允许您通过查询插入唯一值:
如果你想要在查询中插入自动递增的主键,你需要设置 IDENTITY_INSERT ON
如下,这会允许你通过查询插入唯一值:
SET IDENTITY_INSERT [Tablename] ON;
您的查询现在将是:
SET IDENTITY_INSERT Student ON;
INSERT INTO Student VALUES('1','joedio','newyark',GETDATE());
SET IDENTITY_INSERT Student OFF;
如果您希望SQL管理自身,则默认设置为IDENTITY_INSERT OFF
并启用自动增量功能,这意味着在每次插入时新值将分配给该PK列。
最好使用默认设置SET IDENTITY_INSERT Student OFF
,因为通过手动插入可能会插入重复值,并且会引发错误。
IDENTITY_INSERT
属性。 - Sandip - Frontend DeveloperINSERT INTO Student (ID, Name, State, Date) VALUES('1','joedio','newyark',GETDATE())
如果第一列是身份证,则在插入时跳过该值:INSERT INTO Student (Name, State, Date) VALUES('joedio','newyark',GETDATE())
如果您想要向SQL Server
的自增列中插入值
SET IDENTITY_INSERT IdentityTable ON
INSERT INTO Student (ID, Name, State, Date) VALUES('1','joedio','newyark',GETDATE())
SET IDENTITY_INSERT IdentityTable OFF
并且还可以参考链接 如何在 SQL Server 中向标识列插入值 获取更多信息。
试试这个:如果你真的需要在IDENTITY
列中插入值,那么使用给出的答案之一。
SET IDENTITY_INSERT [Tablename] ON;
INSERT INTO [Tablename]..........
SET IDENTITY_INSERT [Tablename] OFF;
values
中排除第一个值。INSERT INTO Student --No need to add column definition if you are inserting rest of all
VALUES('joedio', 'newyark', GETDATE()) --Error Free
如果不存在(SELECT * FROM Student WHERE ID = 1) 然后
SET IDENTITY_INSERT Student ON;
INSERT INTO Student (ID, Name, State, Date) VALUES('1','joedio','newyark',GETDATE())
关闭学生表自增功能;
END
2. 在 SQL Server 中,当 ID 列为自增列且您没有传递 ID 时
INSERT INTO Student (Name, State, Date) VALUES('joedio','newyark',GETDATE())
3. 在 MySQL 中,用户可以使用
INSERT IGNORE INTO Student (ID, Name, State, Date) VALUES('1','joedio','newyark',GETDATE());
或者
INSERT IGNORE INTO Student (Name, State, Date) VALUES('joedio','newyark',GETDATE());
IDENTITY_INSERT 允许将显式值插入到表的标识列中。 使用此查询并在表上设置 IDENTITY_INSERT
SET IDENTITY_INSERT Student ON
SET IDENTITY_INSERT Student ON;
INSERT INTO Student (RegNo, Name, Address, CreatedTime) VALUES('2','calibio','newyark',GETDATE());
SET IDENTITY_INSERT Student OFF;