У меня есть несколько сотен (в настоящее время 466, но постоянно растущих) таблиц, которые мне нужно скопировать с одного сервера на другой.
Мне никогда не приходилось делать это раньше, поэтому я совсем не уверен, как к этому подойти. Все таблицы в одном формате:Cart<Eight character customer number>
Это часть более крупного проекта, в котором я объединяю все эти Cart<Number>
таблицы в одну Carts
таблицу, но это совершенно другой вопрос.
У кого-нибудь есть лучший метод, который я могу использовать для копирования всех этих таблиц? Имена баз данных на обоих серверах одинаковы, если это помогает. И, как я уже говорил ранее, у меня есть sa
учетная запись, поэтому я могу делать все необходимое для передачи данных из А в Б. Оба сервера также находятся в одной ферме серверов.
источник
Ответы:
Вы можете использовать задачу «Экспорт данных» в SQL Server Management Studio. Щелкните правой кнопкой мыши базу данных в SSMS, выберите «Задачи», а затем «Экспорт данных». Он запустит интерактивный мастер, который позволит копировать таблицы с одного сервера на другой, хотя вам придется пересоздать индексы самостоятельно. Мастер создает временный пакет служб SSIS (хотя вы также можете сохранить его) и работает относительно быстро.
источник
Вот быстрый и грязный подход, который требует только связанного сервера в каждом направлении с достаточными привилегиями, совместимостью сопоставления и включенным доступом к данным. Вы запускаете это на исходном связанном сервере, чтобы сгенерировать динамический SQL, который будет выполняться на конечном связанном сервере.
источник
Если вы хотите, чтобы что-то, что может быть написано в сценарии, могло быть легко перезапущено при тестировании и внесении небольших изменений, посмотрите мой ответ здесь:
Импорт данных из одной базы данных в другой скрипт
Этот ответ описывает использование хранимой процедуры SQLCLR, которая использует
SqlBulkCopy
класс в .NET. Использование этой хранимой процедуры может быть сделано в курсоре, который просматривает таблицы. Это позволяет легко редактировать процесс, а также учитывать новые таблицы или легко исключать одну или несколько таблиц с помощьюWHERE
условия в запросе курсора.источник
Вы можете использовать BCP OUT и BULK INSERT INTO базы данных. Вы можете использовать этот скрипт
Вы также можете использовать SSIS (импорт / экспорт данных) для передачи данных .
источник