2009-03-02 16 views
32

Vorrei copiare una tabella da un database a un altro. So che puoi facilmente eseguire quanto segue se i database si trovano sullo stesso server SQL.Copia tabella in un altro database su un altro SQL Server

SELECT * INTO NewTable FROM existingdb.dbo.existingtable; 

Esiste un modo semplice per farlo se i database sono su due diversi server SQL, senza dover scorrere tutti i record della tabella originale e inserirlo nella nuova tabella?

Inoltre, questo deve essere fatto nel codice, al di fuori di SQL Server Management Studio. Pubblicazione guidata

risposta

53

Sì. aggiungi una voce linked server e usa select in usando la convenzione di denominazione degli oggetti in db a quattro parti.

Esempio:

SELECT * INTO targetTable 
FROM [sourceserver].[sourcedatabase].[dbo].[sourceTable] 
2

generare gli script?

Generare uno script per creare la tabella, quindi generare uno script per inserire i dati.

check-out SP_ Genereate_Inserts per generare lo script di inserimento dati.

+0

Se si copiano grandi quantità di dati, il SSMS non sarà in grado di aprire l'SQL. – jumxozizi

+0

Ma puoi ancora usare 'sqlcmd' da un prompt dei comandi per eseguire lo script. –

+0

@Rubiksmomo: è vero, ma si noti anche che anche se SSMS può aprire una grande quantità di dati che l'inserto potrebbe fallire ('query completa con errori') durante lo scripting anche una quantità _modestamente grande di dati. Questo può accadere anche con un piccolo numero di colonne (di larghezza ridotta, a quello). – OcelotXL

3

Se è solo la copia di tabelle, i server collegati funzioneranno correttamente o la creazione di script, ma se la tabella secondaria contiene già alcuni dati, suggerirei di utilizzare uno strumento di confronto di terze parti.

sto usando Apex Diff ma ci sono anche un sacco di altri strumenti là fuori, come quelli provenienti da Red Gate o Dev Art ...

strumenti

di terze parti non sono necessari, naturalmente, e si può fare tutto in modo nativo è solo più conveniente. Anche se hai un budget limitato, puoi usarli in modalità di prova per fare le cose ...

Here è un buon thread su argomento simile con molti altri esempi su come farlo in puro sql.

0

creare il database, con Database Script come ... Crea per

All'interno SSMS sul server di origine, utilizzare la procedura guidata di esportazione con il database server di destinazione come destinazione.

  • istanza di origine> YourDatabase> le attività> Data Export
  • dati Soure = SQL Server Native Client
    • Convalida/entrare Server & Database
  • Destinazione = SQL Server Native Client
    • Convalida/immette server & Da tabase
  • seguire attraverso wizard
2

SQL Server (2012) fornisce un altro modo per generare script per il database di SQL Server con i suoi oggetti e dati. Questo script può essere utilizzato per copiare lo schema e i dati delle tabelle dal database di origine a quello di destinazione nel nostro caso.

  1. Utilizzando SQL Server Management Studio, fare clic con il tasto destro del mouse sul database di origine da Esplora oggetti, quindi da Attività scegliere Genera script. enter image description here
  2. Nella finestra Scegli oggetti, selezionare Seleziona oggetti database specifici per specificare le tabelle per cui generare lo script, quindi selezionare le tabelle spuntando a fianco di ciascuna di esse. Fare clic su Avanti. enter image description here
  3. Nella finestra Imposta opzioni di script, specificare il percorso in cui verrà salvato il file di script generato e fare clic su Avanzate. enter image description here
  4. Dalla finestra Opzioni di Scripting avanzate visualizzata, specificare Schema e Dati come Tipi di dati per Script. Puoi decidere da qui se vuoi scrivere gli indici e le chiavi nelle tue tabelle. Clicca OK. enter image description here Per tornare alla finestra Opzioni avanzate di scripting, fare clic su Avanti.
  5. Rivedere la finestra di riepilogo e fare clic su Avanti. enter image description here
  6. È possibile monitorare l'avanzamento dalla finestra Salva o Pubblica script. Se non ci sono errori, fai clic su Fine e troverai il file di script nel percorso specificato. enter image description here

metodo SQL scripting è utile per generare un unico script per lo schema ed i dati delle tabelle, compresi gli indici e le chiavi. Ma ancora una volta questo metodo non genera lo script di creazione delle tabelle nell'ordine corretto se ci sono relazioni tra le tabelle.

Problemi correlati