Запуск сгенерированных сценариев не может вставить явное значение для столбца идентификаторов в таблице '', когда для параметра IDENTITY_INSERT установлено значение OFF

Я пытаюсь переместить базу данных с сервера с SQL Server 2017 Express Edition на другой сервер с SQL Server 2014 Standard Edition. Резервное копирование/восстановление базы данных было невозможно из-за проблемы с версией, поэтому мне пришлось создавать сценарии для всей базы данных и запускать их на новом сервере.

Поскольку моя общая база данных составляет около 4 ГБ (с данными), поэтому я сначала создал только сценарии схемы и запустил их на целевом сервере, который отлично работал. Затем я создал сценарии только для данных с установленной совместимостью с базой данных SQL Server 2014 Express.

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

Не удается вставить явное значение для столбца идентификаторов в таблице, если для параметра IDENTITY_INSERT установлено значение OFF.

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

Как мне успешно восстановить эту базу данных?


person WAQ    schedule 07.08.2020    source источник
comment
Установите IDENTITY_INSERT ON   -  person Dale K    schedule 07.08.2020


Ответы (2)


Перед вставкой в ​​столбец идентификаторов вы должны разрешить это с помощью set identity_insert <table name> on. Проверьте эту команду. После того, как вы закончите, set identity insert off.

Возможно, есть какой-то вариант восстановления личности. В обычном режиме восстановления SQL Server все работает нормально.

person Dux    schedule 07.08.2020
comment
Но как мне это сделать? как я уже сказал, мои сценарии генерируются с помощью команды generate scripts SQL Server Management Studio, а размер файла составляет около 4 ГБ. Я не могу вручную включить/выключить вставку удостоверения личности. Есть ли шанс автоматизировать это? - person WAQ; 07.08.2020
comment
@WAQ, если нет возможности выбрать при создании скрипта (и я думал, что это было в дополнительных параметрах), но в противном случае вам пришлось бы добавить это вручную, но это всего две строки на таблицу - так что не так сложно. - person Dale K; 07.08.2020

Возможно, можно временно удалить свойство идентификации из исходной таблицы перед созданием скриптов и восстановить его позже. Если это возможно.

person Dux    schedule 07.08.2020