Скопировать таблицу из одной базы данных в другую
Я только что создал пустую базу данных на своей машине. Теперь я хочу скопировать таблицу из нашей базы данных сервера в эту локальную базу данных.
Какие команды sql мне нужно запустить, чтобы сделать это? Я хочу создать новую таблицу, скопировать данные из старой таблицы и вставить ее в новую таблицу.
Ответы
Ответ 1
Создайте связанный сервер на исходном сервере. Самый простой способ - щелкнуть правой кнопкой мыши "Связанные серверы" в Management Studio; в разделе Управление → Объекты сервера.
Затем вы можете скопировать таблицу, используя имя из 4 частей, server.database.schema.table
:
select *
into DbName.dbo.NewTable
from LinkedServer.DbName.dbo.OldTable
Это создаст новую таблицу с той же структурой, что и исходная, и скопирует данные.
Ответ 2
Другим методом, который можно использовать для копирования таблиц из исходной базы данных в пункт назначения, является мастер экспорта и импорта SQL Server, который доступен в SQL Server Management Studio.
У вас есть выбор для экспорта из исходной базы данных или импорта из целевого для передачи данных.
Этот метод - быстрый способ скопировать таблицы из исходной базы данных в целевую, если вы хотите скопировать таблицы, не имеющие отношения к отношениям и заказам таблиц.
При использовании этого метода индексы таблиц и ключей не будут переданы. Если вы заинтересованы в его копировании, вам необходимо сгенерировать скрипты для этих объектов базы данных.
Если это внешние ключи, соединяющие эти таблицы вместе, вам нужно экспортировать данные в правильном порядке, иначе мастер экспорта не будет выполнен.
Не стесняйтесь читать больше об этом методе, а также о некоторых других методах (включая генерировать скрипты, SELECT INTO и сторонние инструменты) в этой статье:
https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/
Ответ 3
SELECT... INTO:
select * into <destination table> from <source table>
Ответ 4
Предполагая, что они находятся на одном сервере, попробуйте следующее:
SELECT *
INTO SecondDB.TableName
FROM FirstDatabase.TableName
Это создаст новую таблицу и скопирует данные с FirstDatabase.TableName
в SecondDB.TableName
и не создаст внешние ключи или индексы.
Ответ 5
При постоянной миграции между двумя базами данных возможность вставить в уже существующую структуру таблицы. Если да, то:
Используйте следующий синтаксис:
insert into DESTINATION_DB.dbo.destination_table
select *
from SOURCE_DB.dbo.source_table
[where x ...]
Если вы переносите LOT таблиц (или таблицы с ограничениями внешних ключей), я бы рекомендовал:
- Сгенерирование скриптов с опцией Advanced/Типы данных до script: только данные OR
- Курорт использует сторонний инструмент.
Надеюсь, что это поможет!
Ответ 6
Предполагая, что вам нужны разные имена для таблиц.
Если вы используете PHPmyadmin, вы можете использовать их вариант SQL в меню. Затем вы просто скопируете SQL-код из первой таблицы и вставьте его в новую таблицу.
Это сработало для меня, когда я двигался с localhost на веб-хостинг.
Надеюсь, это сработает для вас!
Ответ 7
INSERT INTO ProductPurchaseOrderItems_bkp
(
[OrderId],
[ProductId],
[Quantity],
[Price]
)
SELECT
[OrderId],
[ProductId],
[Quantity],
[Price]
FROM ProductPurchaseOrderItems
WHERE OrderId=415
Ответ 8
Самый быстрый способ - использовать инструмент, например RazorSQL или Toad, для этого.
Ответ 9
Если вам нужна вся структура таблицы (а не только базовый макет данных), используйте Task>Script Table As>Create To>New Query Window
и запустите в своей новой базе данных. Затем вы можете скопировать данные в свободное время.