Sql скопировать таблицу в другую базу

П ри работе с MS SQL Server приходиться иногда перемещать таблицы из одной базы в другую. Чаще всего такую манипуляцию проделывают с различными Справочниками (классификаторами). В качестве примера опишем следующую стандартную ситуацию.

Прим. Как скопировать табличку из одной СУБД в другую от разных производителей можно посмотреть здесь

Представим , что вы являетесь владельцем двух фирм и возникла необходимость переместить (скопировать) таблицу Справочник товаров Tovary из БД OOO_RogaKopyta в базу данных ZAO_Finish:

Для выполнения этой задачи становимся на таблицу dbo.Tovary в базе-источнике ( OOO_RogaKopyta в нашем примере) и жмём на Выбрать первые . строк в контекстном меню :

Далее в окне запросов пишем нехитрое SQL- выражение и жмём Выполнить :

Select * into ZAO_Finish.dbo.Tovary From OOO_ RogaKopyta.dbo.Tovary

Результат — табличка Tovary будет скопирована из БД OOO_RogaKopyta в БД ZAO_Finish:

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

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

Создайте связанный сервер на исходном сервере. Самый простой способ — щелкнуть правой кнопкой мыши "Связанные серверы" в Management Studio; в разделе Управление → Объекты сервера.

Затем вы можете скопировать таблицу, используя имя из 4 частей, server.database.schema.table :

Это создаст новую таблицу с той же структурой, что и исходная, и скопирует данные.

Другим методом, который можно использовать для копирования таблиц из исходной базы данных в пункт назначения, является мастер экспорта и импорта SQL Server, который доступен в SQL Server Management Studio.

Читайте также:  Рисунки в паинте осень

У вас есть выбор для экспорта из исходной базы данных или импорта из целевого для передачи данных.

Этот метод — быстрый способ скопировать таблицы из исходной базы данных в целевую, если вы хотите скопировать таблицы, не имеющие отношения к отношениям и заказам таблиц.

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

Если это внешние ключи, соединяющие эти таблицы вместе, вам нужно экспортировать данные в правильном порядке, иначе мастер экспорта не будет выполнен.

Существует несколько способов копирования таблицы в базе данных MS SQL Server. Предлагаю несколько вариантов создания копии таблиц. Какой из них выбрать – зависит от структуры таблицы, наличия в ней индексов, триггеров и т.п., а также желания делать что-то руками.

1. Ручной метод копирования структуры таблицы

В Micrisoft SQL Management Studio выбрать базу, выбрать таблицу, нажать правой кнопкой мыши и выбрать пункты "Script Table as" -> "CREATE TO" -> "New Query Editor Window". В окне запроса откроется код для создания таблицы. В нем нужно указать имя базы, в которой нужно сделать копию таблицы, и новое имя, если база не меняется. Как создать код для создания структуры имеющейся таблицы, показано на рисунке ниже.

Как создать код для создания структуры имеющейся таблицы

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

Для копирования данных в уже созданную таблицу нужно использовать такой SQL запрос:

2. Копирование SQL таблицы запросом в одну строчку

Сделать копию структуры таблицу и данных внутри одной базы:

Читайте также:  Стерео звук на андроид

Скопировать структуры таблицу и ее данные из одной базы в другую:

Минус у такого решения – не копируются индексы.

Оцените статью
Добавить комментарий

Adblock detector