无法在具有唯一索引“IX_ta_Kullanici”的对象“dbo.ta_Kullanici”中插入重复的键行。\r\n语句已终止
Posted
技术标签:
【中文标题】无法在具有唯一索引“IX_ta_Kullanici”的对象“dbo.ta_Kullanici”中插入重复的键行。\\r\\n语句已终止【英文标题】:Cannot insert duplicate key row in object 'dbo.ta_Kullanici' with unique index 'IX_ta_Kullanici'.\r\nThe statement has been terminated无法在具有唯一索引“IX_ta_Kullanici”的对象“dbo.ta_Kullanici”中插入重复的键行。\r\n语句已终止 【发布时间】:2015-05-29 08:46:04 【问题描述】:我尝试开发一个将数据从 excel 表插入到 SqlServer 的程序。 尝试将数据插入 sqlserver 时出现错误。这是我的错误信息
“无法在对象 'dbo.ta_Kullanici' 中插入重复的键行 唯一索引 'IX_ta_Kullanici'。\r\n语句已终止。"
ID 在我的表中是唯一且自动递增的。
感谢您的帮助! :)
我的部分代码在这里;
if (!check)
kul = new ta_Kullanici();
hata = new KullaniciHata();
hata.AdSoyad = kullanicilar.Rows[i][7].ToString() + " " + kullanicilar.Rows[i][8].ToString();
hatalar.Add(hata);
kul.kul_ad = kullanicilar.Rows[i][7].ToString();
kul.kul_soyad = kullanicilar.Rows[i][8].ToString();
foreach (var bolge in bolgeler)
if (kullanicilar.Rows[i][1].ToString().ToLower().IndexOf(bolge.bolge_ad.ToLower()) != -1)
kul.kul_bolge_Id = bolge.bolge_Id;
kul.kul_ikTar = DateTime.Now;
kul.kul_statu = true;
kul.kul_guid = Guid.NewGuid().ToString();
kul.kul_ikIP = "127.0.0.1";
kul.kul_ik_kul_Id = 5;
kul.kul_TCKNo = kullanicilar.Rows[i][9].ToString();
kul.kul_kulAd = kullanicilar.Rows[i][6].ToString();
kul.kul_tip_enm = 2;
if (!string.IsNullOrWhiteSpace(kullanicilar.Rows[i][9].ToString()))
kul.kul_sifre = kullanicilar.Rows[i][9].ToString();
else
kul.kul_sifre = "123123";
checkList.Add(kul);
db.ta_Kullanici.Add(kul);
db.SaveChanges();
hatalar.Remove(hata);
【问题讨论】:
引用数据库中主键的索引的名称是什么?默认情况下,它类似于 PK_dbo.Kullanici。似乎违反了另一个索引,而不是主键 在数据库的哪个列索引IX_ta_Kullanici上创建,该列不能重复? 是的。但这不是强制性的,只有一列,几列也可以 【参考方案1】:查看有问题的表 dbo.ta_Kullanici
并查看名为 IX_ta_Kullanici
的索引位于哪一列。
相关索引是唯一索引,这意味着它不允许列有任何重复值
请记住,此索引可以在表中的任何列上,并且不限于主键。
【讨论】:
【参考方案2】:所以基本上问题是该列具有唯一键的索引,该索引的作用是确保重复值不会在列上重复,要改变这一点,您可以去 Management Studio , 转到有该列的表,右键单击该列并单击进行修改。将出现一个屏幕,显示所有列。右键单击列旁边的小框并选择索引/键。然后你会看到一个 IsUnique 属性。将其设置为“否”。
【讨论】:
以上是关于无法在具有唯一索引“IX_ta_Kullanici”的对象“dbo.ta_Kullanici”中插入重复的键行。\r\n语句已终止的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Rails 3.2 中使用复合唯一索引将记录添加到连接表