Ответ 1
Попробуйте это
SET IDENTITY_INSERT customers ON
GO
insert into customers(id, ...)
values(201,'Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)
SET IDENTITY_INSERT customers OFF
Возможный дубликат:
Невозможно вставить явное значение для столбца идентификации в таблице таблицы, если для параметра IDENTITY_INSERT установлено значение ВЫКЛ.
Я новичок в SQL. Я пытаюсь написать запрос INSERT
в редакторе SQL Server 2008 Express.
Запрос:
insert into customers
values(201, 'Singh', 'rajnish', '101 bhandup', 'mumbai', 'mp', 33321, 0, null, 123.89, 25.00)
Но я получаю следующую ошибку.
Явное значение для столбца идентификации в таблице "клиенты" может быть указано только при использовании списка столбцов, а IDENTITY_INSERT включен.
Я искал stackoverflow. Нашел несколько похожих вопросов, но не смог понять объяснения. Пожалуйста, помогите мне понять ошибку и исправить ее.
ИЗМЕНИТЬ:
Я попытался сделать:
SET IDENTITY_INSERT customers ON;
insert into customers
values(201, 'Singh', 'rajnish', '101 bhandup', 'mumbai', 'mp', 33321, 0, null, 123.89, 25.00)
SET IDENTITY_INSERT customers OFF;
но снова я получаю ту же ошибку.
Попробуйте это
SET IDENTITY_INSERT customers ON
GO
insert into customers(id, ...)
values(201,'Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)
SET IDENTITY_INSERT customers OFF
Когда таблица использует поле идентификации, она выбирает собственные значения. Он отслеживает эти значения, чтобы убедиться, что он никогда не пытается ввести дубликат и будет производить эту ошибку, если вы попытаетесь указать свой собственный.
Итак, в вашем случае либо A вставляет строку без поля, которое было помечено как поле идентификации; позволяя движку sql выбрать его собственное значение для этого поля. (что вся причина, по которой вы правильно используете поле идентификации)
Или B. Включите identity_insert перед запуском вашей вставки (если у вас есть веская причина для вставки определенного значения в качестве ключа).
Вам также нужно использовать действительную инструкцию insert. Укажите столбцы, которые вы вставляете, а также значения.
Если ваше первое значение является столбцом идентификации, просто удалите его, например:
insert into customers
values('Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)