Явное значение столбца 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)