在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, 这样执行之后数据库中就会加入自定义主键值的数据了。

 

标签: SQL Server, IDENTITY_INSERT, 不能为表中的标识列插入显式值

添加新评论