У меня есть база данных удаленных файловых архивов, в которой хранится идентификатор удаляемого файла, я хочу, чтобы администратор мог восстановить файл (а также тот же идентификатор для связывания файлов). Я не хочу отбирать identity_insert со всей таблицы, так как приращение на один отлично работает. В моей вставке в процедуру хранения TBL_Content у меня есть что-то вроде этого
Но я все равно получаю ту же ошибку:
Невозможно вставить явное значение для столбца идентификатора в таблице ‘TBL_Content’, если для параметра IDENTITY_INSERT установлено значение OFF.
Если вы вместо этого устанавливаете вставку идентификации внутри хранимой процедуры? Похоже, вы настраиваете его только при изменении хранимой процедуры, а не при ее самом вызове. Попробуйте:
Не следует ли устанавливать идентификацию_Insert ON, вставляя записи и затем отключая их?
Как видно из названия материала сегодня я расскажу о таком, в некоторых случаях, полезном свойстве таблицы в Microsoft SQL Server как IDENTITY_INSERT, используя именно это свойство, можно вставить в автоинкрементное поле значение, которое ранее было удалено, т.е. заполнить или восстановить пропущенные значения идентификаторов.
fpm_start( "true" );
Свойство >IDENTITY_INSERT – это свойство таблицы, которое позволяет вставлять явные значения в столбец идентификаторов таблицы, т.е. в автоинкрементное поле. Значение вставляемого идентификатора может быть как меньше текущего значения, так и больше, например, для того чтобы пропустить определенный интервал значений.
При работе с данным свойством необходимо учитывать некоторые нюансы, давайте их рассмотрим:
-
Свойство >Итак, давайте рассмотрим ситуацию, когда у нас возникла необходимость вставить значение в столбец с идентификатором, допустим, строка с этим значением была удалена, а нам ее нужно восстановить.
Для начала давайте рассмотрим исходные данные.
Исходные данные
Примечание! В качестве примера у меня будет выступать СУБД Microsoft SQL Server 2012 Express.
Создаем таблицу, в которой есть столбец с идентификатором и заполняем ее данными.