2013-07-11 5 views
8

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

Таблицы Я хочу, чтобы скопировать называются: Customers, Computers, Cellphones, Prices

То, что я пытался сделать то, что (с помощью SSMS) щелкните правой кнопкой мыши на таблице, но не копировать там!

+0

В обеих базах данных существуют одни и те же таблицы (с одинаковой структурой)? только вы хотите передать только данные? –

+2

Возможный дубликат [SQL Server 2008: копирование содержимого всех таблиц из одной базы данных в другую базу данных] (http://stackoverflow.com/questions/4028104/sql-server-2008-copying-the-contents-of-all -tables-from-one-database-in-anoth) и [Как скопировать одну таблицу из базы данных в другую базу данных/таблицу в SQL Server] (http://stackoverflow.com/q/187770/62576), оба которые перечислены в списке «Соответствующие» справа от вашего вопроса. === >>> Пожалуйста, сделайте хотя бы базовый поиск здесь, прежде чем публиковать новый вопрос, чтобы узнать, уже задан ли он (и ответил). Благодарю. –

+0

@natalia, у Кен есть причина, для этого вопроса, как правило, ответы уже существуют. Благодарю. –

ответ

9

Если предположить, что у вас есть две базы данных, например, А и В:

  • Если целевая таблица не существует, то следующий сценарий будет создавать (я не рекомендую этот путь):

    SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
    INTO COPY_TABLE_HERE 
    FROM A.dbo.table_from_A table_A 
    
  • Если целевая таблица существует, то:

    INSERT INTO TABLE_TARGET 
    SELECT table_A.FIELD_1, table_A.FIELD_2,......, table_A.FIELD_N 
    FROM A.dbo.table_from_A table_A 
    

Примечание: если вы хотите изучить и практиковать это, вы можете использовать предыдущие сценарии, но если вы хотите скопировать всю структуру и данные из базы данных в другую, вы должны использовать «Резервное копирование и восстановление базы данных» или «Генерировать базу данных сценариев с помощью data "и запустить это в другую базу данных.

+0

Вы можете сделать это без выбора имена полей явно? –

8

правой кнопкой мыши на базе данных -> под Задачи выбрать Создавать сценарии, следуйте указаниям мастера, выбрать таблицы и установите флажок, который говорит «таблицы данных сценария» (или аналогичный) порождают его в SQL и выполнить его на другой БД.

4

Вы также можете попробовать мастер импорта/экспорта SQL Server. Если целевые таблицы не существуют, они будут созданы при запуске мастера.

Заканчивать MSDN для получения более подробной информации http://msdn.microsoft.com/en-us/library/ms141209.aspx

+0

Возможно, самое простое и наименее затратное время. +1 – LegendaryDude

0

попробовать это

USE TargetDatabase 
GO 

INSERT INTO dbo.TargetTable(field1, field2, field3) 
SELECT field1, field2, field3 
FROM SourceDatabase.dbo.SourceTable 
WHERE (some condition) 
0

Если вы хотите скопировать только схему таблиц можно добавить ложное условие к концу указанных запросов.

ex.

SELECT table_A.FIELD_1, ..., table_A.FIELD_N 
INTO LiveDB.custom_table 
FROM Natalie_playground.dbo.custom_table table_A 
WHERE 0 > 1 
1

Попробуйте это:

Если целевая таблица существует:

SELECT SourceTableAlias.* 
INTO TargetDB.dbo.TargetTable 
FROM SourceDB.dbo.SourceTable SourceTableAlias 

И если целевая таблица не существует:

INSERT INTO TargetDB.dbo.TargetTable 
SELECT SourceTableAlias.* 
FROM SourceDB.dbo.SourceTable SourceTableAlias 

удачи!

Смежные вопросы