#sql #sql-server #database #tsql
Вопрос:
Я хочу переместить базу данных с нашего тестового сервера на свой локальный сервер. У меня нет возможности создавать резервные копии и восстанавливать, так как у меня нет разрешения. Поэтому я решил использовать опцию создать сценарий, чтобы создать все сценарии для БД, а затем переместить базу данных на мой локальный сервер. Проблема, с которой я сталкиваюсь, заключается в том, что большинство этих таблиц имеют связи с внешними ключами, и когда я создаю сценарии, они создаются в алфавитном порядке, и поэтому мои сценарии не работают. Есть ли способ создания сценариев, в которых таблицы выровнены на основе их связей с внешними ключами? Если нет, то есть ли какой-то другой способ достичь этого?
Комментарии:
1. Рассматривали ли вы возможность применения внешних ключей отдельно, во время второго прохода?
2. Я не видел возможности создавать таблицы без внешних ключей в мастере создания сценариев. Я что-то упускаю?
3. вам лучше найти SQL — скрипт для создания ваших объектов-в Google есть много примеров. Лучшим подходом был бы инструмент, который делает это для вас, я использую Redgate SQLCompare, и он сделает это для вас безупречно.
4. Я удивлен, что SSMS уже не генерирует вещи в порядке зависимостей, но… в Инструментах gt; Параметры gt;gt; Параметры сценариев gt;gt;gt; Параметры таблицы/представления gt;gt;gt;gt; Внешние ключи сценариев = true/false. Вам придется создать второй сценарий только с внешними ключами, что может быть сделано вручную.
5. Большое вам спасибо, ребята! Я попробую ваши предложения.
Ответ №1:
Вам необходимо изменить некоторые настройки в разделе «Дополнительные параметры». Не забудьте установить правильный уровень совместимости вашего целевого сервера, этот параметр может испортить ваш сценарий.
Я много раз использовал этот инструмент для миграции с SQL Server 2019 на 2019 год (Windows и Linux) и на 2012 год.
Одна вещь, которую вы должны проверить перед сохранением своего сценария, — это кодировка, когда вам нужно включить данные.