当前位置: 代码迷 >> Sql Server >> 执行数据库时出现:讯息 2627,级别 14,状态 1
  详细解决方案

执行数据库时出现:讯息 2627,级别 14,状态 1

热度:16   发布时间:2016-04-24 08:54:33.0
执行数据库时出现:消息 2627,级别 14,状态 1
USE QPGameMatchDB
GO

-----------------------------------------------------------------------------------------------------------

INSERT [GameColumnItem] ([SortID],[ColumnName],[ColumnWidth],[DataDescribe]) VALUES ( 1,'昵称',100,3)
INSERT [GameColumnItem] ([SortID],[ColumnName],[ColumnWidth],[DataDescribe]) VALUES ( 2,'ID',60,1)
INSERT [GameColumnItem] ([SortID],[ColumnName],[ColumnWidth],[DataDescribe]) VALUES ( 3,'积分',60,30)

执行后显示:
消息 2627,级别 14,状态 1,第 4 行
违反了 PRIMARY KEY 约束 'PK_GameColumnItem_SortID'。不能在对象 'dbo.GameColumnItem' 中插入重复键。
语句已终止。
消息 2627,级别 14,状态 1,第 5 行
违反了 PRIMARY KEY 约束 'PK_GameColumnItem_SortID'。不能在对象 'dbo.GameColumnItem' 中插入重复键。
语句已终止。
消息 2627,级别 14,状态 1,第 6 行
违反了 PRIMARY KEY 约束 'PK_GameColumnItem_SortID'。不能在对象 'dbo.GameColumnItem' 中插入重复键。
语句已终止。
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

你的主键是不是SortID?如果是你就select SortID from GameColumnItem  看一看查出来的SortID中有没有你要插入的数据的SortID,比如你现在需要插入的数据SortID是1,2,3,那么你就需要看看表中是否已经有了1,2,3 如果有那么肯定插不进去数据的,你需要将要插入数据中的1,2,3替换成别的


我把select SortID from GameColumnItem 执行后显示这个(17 行受影响)

那你看看 查询的结果是不是有1 2,3 啊,如果有就将插入的数据中的1,2,3替换掉

是下面这个样子,你看下:


你将select SortID from GameColumnItem 执行结果给我看不要执行插入语句
------解决思路----------------------
TRUNCATE TABLE [GameColumnItem]

把第一句SELECT换成这个,清空后重新插入就没问题了。