Явное значение для столбца идентификации в таблице "клиенты" может быть указано только при использовании списка столбцов, а IDENTITY_INSERT включен

Возможный дубликат:
Невозможно вставить явное значение для столбца идентификации в таблице таблицы, если для параметра 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;

но снова я получаю ту же ошибку.

Ответ 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

Ответ 2

Когда таблица использует поле идентификации, она выбирает собственные значения. Он отслеживает эти значения, чтобы убедиться, что он никогда не пытается ввести дубликат и будет производить эту ошибку, если вы попытаетесь указать свой собственный.

Итак, в вашем случае либо A вставляет строку без поля, которое было помечено как поле идентификации; позволяя движку sql выбрать его собственное значение для этого поля. (что вся причина, по которой вы правильно используете поле идентификации)

Или B. Включите identity_insert перед запуском вашей вставки (если у вас есть веская причина для вставки определенного значения в качестве ключа).

Вам также нужно использовать действительную инструкцию insert. Укажите столбцы, которые вы вставляете, а также значения.

Ответ 3

Если ваше первое значение является столбцом идентификации, просто удалите его, например:

insert into customers
values('Singh','rajnish','101 bhandup','mumbai','mp',33321,0,null,123.89,25.00)