2013-07-11 19 views
8

Mam dwie bazy danych, jedna nazywa się Natalie_playground, a jedna nazywa się LiveDB. Ponieważ chcę przećwiczyć wstawianie, aktualizować rzeczy, chcę skopiować niektóre tabele z LiveDB do Natalie_playground.Serwer SQL Kopiowanie tabel z jednej bazy danych na inną

Tabele Chcę skopiować nazywane są: Customers, Computers, Cellphones, Prices

Co próbowałem zrobić to, że (za pomocą SSMS) kliknij prawym przyciskiem myszy na stole, ale nie ma tam Copy!

+0

W obu bazach danych istnieją te same tabele (o tej samej strukturze)? tylko chcesz przekazać tylko dane? –

+2

możliwy duplikat [SQL Server 2008: kopiowanie zawartości wszystkich tabel z jednej bazy danych do innej bazy danych] (http://stackoverflow.com/questions/4028104/sql-server-2008-copying-the-contents-of-all -tables-from-one-database-into-anoth) i [Jak skopiować jedną tabelę z bazy danych do innej bazy danych/tabeli w SQL Server] (http://stackoverflow.com/q/187770/62576), zarówno które są wymienione na liście "Powiązane" po prawej stronie twojego pytania. === >>> Zanim opublikujesz nowe pytanie, zrób co najmniej podstawowe wyszukiwanie, aby sprawdzić, czy zostało już zadane (i odpowiedziałeś) wcześniej. Dzięki. –

+0

@natalia, Ken ma powód, dla tego pytania, zwykle odpowiedzi już istnieją. Dzięki. –

Odpowiedz

9

Zakładając, że masz dwie bazy danych, na przykład A i B:

  • Jeśli tabela docelowa nie istnieje, poniższy skrypt stworzy (nie polecam ten sposób):

    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 
    
  • Jeżeli tabela docelowa występuje, wówczas:

    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 
    

Uwaga: jeśli chcesz się tego nauczyć i ćwiczyć, możesz użyć poprzednich skryptów, ale jeśli chcesz skopiować kompletną strukturę i dane z bazy danych do innej, powinieneś użyć "Utwórz kopię zapasową i przywróć bazę danych" lub "Wygeneruj bazę danych skryptów z danych "i uruchom go w innej bazie danych.

+0

można to zrobić bez wybierania Nazwy pól jawnie? –

8

prawym przyciskiem myszy na bazie danych -> pod Zadania wybrać Generowanie skryptów, postępuj zgodnie z kreatora, wybierz tabele i zaznacz pole wyboru, które mówi „dane tabeli script” (lub podobny) generują go do Skrypt SQL i uruchom go na innym DB.

0

spróbować

USE TargetDatabase 
GO 

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

Jeśli chcesz skopiować tylko schemat tabel, można dodać fałszywy stan na koniec wspomniane zapytaniami.

np.

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

Spróbuj tego:

Jeśli tabela docelowa to istnieje:

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

A jeśli tabela docelowa to istnieje:

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

powodzenia!

Powiązane problemy