Явное значение столбца identity в таблице "клиенты" можно указать только в том случае, если используется список столбцов и включена функция IDENTITY INSERT [duplicate]

Возможные Дубликаты:
не удается вставить явное значение столбца идентификатора в таблицу "Таблица", когда IDENTITY_INSERT имеет значение OFF

Я новичок в SQL. Я пытаюсь написать INSERT запрос в SQL server 2008 Express edition.

запрос :

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

но я получаю следующую ошибку.

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

Я искал stackoverflow. Нашел несколько подобных вопросов, но не смог понять объяснение. Пожалуйста, помогите мне понять ошибку и исправить ее.

EDIT:

Я попытался сделать:

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;

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

3 ответов


попробуй такое

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

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

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

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

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


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

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