SQL Server中手动插入时提示不能为表中的标识列插入显式值
侧边栏壁纸
  • 累计撰写 269 篇文章
  • 累计收到 275 条评论

SQL Server中手动插入时提示不能为表中的标识列插入显式值

Karry Bai
2017-07-18 / 0 评论 / 200 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年12月25日,已超过551天没有更新,若内容或图片失效,请留言反馈。

在SQL Server中使用Navicat for SQL Server往数据库中插入数据时时出现如下错误提示:

[SQL]INSERT INTO [gps_car_type] ([id], [CarType], [CTCode]) VALUES (1, '小轿车', '0')
[Err] 23000 - [SQL Server]当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'gps_car_type' 中的标识列插入显式值。

刚开始以为是工具的问题,于是切换到Microsoft SQL Server Management Studio上进行执行,还是提示相同错误,结果每次都执行失败。

解决办法是将显式值插入表的标识列中的功能打开,用完这个功能之后再关闭。

###允许将显式值插入表的标识列中 ON-允许  OFF-不允许

set identity_insert ClassInfo ON;

INSERT INTO [gps_car_type] ([id], [CarType], [CTCode]) VALUES (2, '小巴', '0');
GO
INSERT INTO [gps_car_type] ([id], [CarType], [CTCode]) VALUES (3, '中巴', '0');
GO
INSERT INTO [gps_car_type] ([id], [CarType], [CTCode]) VALUES (4, '大巴', '0');
GO

set identity_insert ClassInfo OFF;

在执行之前开启identity_insert,在执行完成之后关闭identity_insert, 这样执行之后数据库中就会加入自定义主键值的数据了。

 

0

评论 (0)

取消