2013-07-11 16 views
8

Ho due database, uno è chiamato Natalie_playground e uno è chiamato LiveDB. Dal momento che voglio esercitarmi nell'inserimento, aggiornare le cose, voglio copiare alcune delle tabelle da LiveDB a Natalie_playground.SQL Server Copia di tabelle da un database a un altro

Le tabelle che voglio copiare sono chiamati: Customers, Computers, Cellphones, Prices

Quello che ho cercato di fare è che (usando SSMS) fate clic destro su un tavolo, ma non v'è copia in là!

+0

In entrambi i database esistono le stesse tabelle (con la stessa struttura)? solo tu vuoi passare solo un dato? –

+2

possibile duplicato di [SQL Server 2008: copia dei contenuti di tutte le tabelle da un database in un altro database] (http://stackoverflow.com/questions/4028104/sql-server-2008-copying-the-contents-of-all -tables-from-one-database-into-anoth) e [Come copiare una tabella da un database in un altro database/tabella in SQL Server] (http://stackoverflow.com/q/187770/62576), entrambi che sono elencati nella lista 'Related' alla destra della tua domanda. === >>> Si prega di fare almeno una ricerca di base qui prima di pubblicare una nuova domanda per vedere se è già stato chiesto (e risposto) prima. Grazie. –

+0

@natalia, Ken hanno ragione, per questa domanda, normalmente le risposte esistono già. Grazie. –

risposta

9

Supponendo che si dispone di due database, ad esempio A e B:

  • Se la tabella di destinazione non esiste, il seguente script creerà (Non consiglio questo modo):

    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 
    
  • Se la tabella di destinazione esiste, allora:

    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 
    

Nota: se si desidera apprendere e mettere in pratica ciò, è possibile utilizzare gli script precedenti, ma se si desidera copiare la struttura completa ei dati dal database a un altro, è necessario utilizzare "Backup e ripristino del database" oppure "Genera database di script con dati "ed eseguirlo in un altro database.

+0

Si può fare questo senza selezionare il nome del campo è esplicitamente? –

8

Fare clic destro sul database -> sotto Attività scegliere generare script, seguire la procedura guidata, scegliere i tavoli e selezionare la casella di controllo che dice 'di script dati della tabella' (o simili) genera a un Script SQL ed eseguirlo sull'altro DB.

4

È anche possibile provare la procedura guidata di importazione/esportazione di SQL Server. Se le tabelle di destinazione non esistono già, verranno create quando si esegue la procedura guidata.

Partenza MSDN per ulteriori dettagli http://msdn.microsoft.com/en-us/library/ms141209.aspx

+0

Probabilmente il più semplice e meno dispendioso in termini di tempo. +1 – LegendaryDude

0

provare questo

USE TargetDatabase 
GO 

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

Se si desidera copiare solo lo schema di tabelle, è possibile aggiungere una condizione falsa al fine di query menzionati.

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

Prova questo:

Se tabella di destinazione è esiste:

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

E non se la tabella di destinazione è esiste:

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

Good Luck!

Problemi correlati