Я получаю эту ошибкуSQL ошибка вставки сервера из-за ключом
Нарушение ограничения PRIMARY KEY 'X_dbo.XYZ. Не удается вставить дублирующий ключ в объект ...
Уверен, что это не вызвано дублирующим ключом!
Я знаю, что SQL Server использует «механизм» для вставки ключа по умолчанию при добавлении строки (в моем случае int).
После того, как я удалю все строки в таблице, а затем попытаюсь добавить строку, указав для id значение, которое ранее было в этой таблице, я получаю эту ошибку.
Я считаю, что это вызвано этим «механизмом», что я не в полной мере понять
Например у меня есть в таблице XYZ ряд
Id Name
1 "some name"
Я удалить эту строку, то я пытаюсь добавить новый ряд с 1 как Id
INSERT ....
VALUES (1, 'some other name for new row')
и я получаю эту ошибку.
Не указать идентификатор вставки для меня не вариант, мне нужна работа или эта ошибка.
Спасибо!
ОБНОВЛЕНО
I таблица создается с помощью Entity Framework и код-первого подхода (C#)
[Table("XYZ")]
public class XYZ: InheritDb
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long ID { get; set; }
[Required]
public string Key { get; set; }
[Required]
public string Value { get; set; }
public string Description { get; set; }
//....
}
и сценарий вставки походит
SET IDENTITY_INSERT [dbo].[XYZ] ON
GO
INSERT [dbo].[XYZ] ([ID], [Key], [Value], [Description], ...)
VALUES (1, N'PaymentMode', N'Test', N'PaymentMode', ...)
Покажите нам инструкцию create table и инструкции вставки. – jarlh
И любые триггеры – MatBailie
Есть ли какой-то триггер? Вы уверены, что это не связано с другой таблицей? – Shnugo