Мастер импорта и экспорта со столбцом идентификаторов
Я хочу переместить данные из одной БД в другую, сохраняя при этом значения столбца идентификаторов в старой БД. Когда я запускаю мастер, я получаю ошибку проверки "ошибка вставки в столбец только для чтения "ChannelID".
где ChannelID-это столбец идентификаторов в этой таблице. Как я могу переопределить функцию идентификации, чтобы иметь возможность импортировать данные?
7 ответов:
вам нужно будет включить Identity insert. При нажатии кнопки Изменить сопоставления устанавливается флажок.
ответ Byte56 правильный-проверьте "включить Identity insert" на экране редактирования сопоставлений. Я просто хотел отметить, что список" выбор исходных таблиц и представлений " поддерживает множественный выбор, поэтому вы можете удерживать Shift или Ctrl, чтобы выбрать несколько таблиц в списке.
вы должны использовать
SET IDENTITY INSERT ON
разрешить вставку значений в столбец идентификаторовздесь ссылке в MSDN
на РЕДАКТИРОВАТЬ СОПОСТАВЛЕНИЯ СТОЛБЦОВ, клещевой ВКЛЮЧИТЬ ВСТАВКУ ИДЕНТИФИКАТОРОВ. Затем нажмите РЕДАКТИРОВАТЬ SQL.
изменить
[MyID] int NOT NULL,
на
[MyID] int IDENTITY(1,1),
работает в импорте базы данных MS Access. При этом сохраняются данные в поле Autonumber, преобразуемые в столбец идентификаторов.
SQL Server 2008 R2 с помощью SSMS 2008 R2.
простое включение identity в "Редактировать сопоставления" не сохраняет identity=true. Мне нужно вручную отредактировать sql для каждой таблицы и включить свойство IDENTITY в код sql.
пример: добавить MS_IDENT numeric (18,0) IDENTITY NOT NULL,
Я только что обновился до SQL Server Management Studio 2017. Я попытался проверить флажок "Использовать идентификатор" в диалоговом окне редактирования сопоставлений, но это не сработало. При обновлении существующей таблицы мастер не позволяет редактировать SQL. Вместо этого я смог сохранить его в виде пакета на своем жестком диске. Затем я отредактировал файл в блокноте, ища "личность". Конечно же, свойство было установлено в true, что в соответствии с комментариями в самом файле означает, что значение для столбца идентификаторов равно скопировано из источника. Изменение его на false приводит к тому, что значение автоматически генерируется в месте назначения. Надеюсь, это поможет.
Я провел некоторое время, пытаясь найти решение для этого
У меня есть база данных access с 300+ таблицами и с помощью инструмента импорта SSMS2017 я не мог получить его, чтобы сохранить первичный ключ и автоматический номер, без ручного редактирования конфигурации для каждой таблицы.... не хороший..
в конце концов я использовал инструмент, сделанный bullzip, (MS Access to MSSQL) который позволяет мне конвертировать из access в mssql (у них также есть инструмент для доступа к MySQL)
инструмент делает задание для вас, завяните к скрипту, если у вас есть небольшая таблица, или непосредственно к серверу..
все идентификаторы не повреждены, и автономера также находятся там..
работу.