Назад | Перейти на главную страницу

sql server: потеря столбца идентификаторов при экспорте / импорте

Недавно я начал заниматься SQL Server, раньше я работал с MS-Access.

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

Как я могу использовать задание импорта / экспорта, чтобы сделать точную копию базы данных и ее данных? Я не хочу выполнять резервное копирование и восстановление каждый раз, когда мне нужна та же база данных где-то еще, для другого проекта и т. Д.

Я читал о «редактировании сопоставления» и флажке, но это не помогло со спецификацией идентичности ... а как насчет первичного ключа таблиц и всего остального?

Если вы хотите (или вам нужно) избежать резервного копирования / восстановления, это то, что я бы порекомендовал (эти шаги предполагают, что вы не хотите поддерживать старую схему NAME, а только структуру) -

Скачать opendbdiff. Выберите «Сравнить» между источником и (пустым) местом назначения. Выберите синхронизацию. Скрипт и скопируйте только строки создания таблицы (без таблиц dbo.sysdiagrams и т. д.), вставьте в новый запрос sql managment studio, удалите все имена схем, появляющиеся перед именами таблиц.

Теперь у вас есть полная структура, включая первичные ключи, идентификационные данные и т. Д. Следующий шаг - используйте данные импорта и экспорта сервера sql, как и раньше (убедитесь, что вы выбрали редактировать сопоставления и выбрали схему назначения как dbo и т. Д.). Также убедитесь, что вы отметили опцию drop и воссоздать целевую таблицу.

Если вы используете Сравнение данных SQL, ваши столбцы идентичности будут сохранены.

Это действительно лучший способ обеспечить идеальную синхронизацию БД, и он настоятельно рекомендуется основателями Stackoverflow.

Как правило, попытка использовать встроенные функции импорта / экспорта в SSMS - это проигрышная битва.