Seleziona in istruzione dove la fonte è un altro database

sql sqlbulkcopy sql-server sql-server-2008 sql-server-2012

Domanda

Come copiare i dati da un DB in un altro DB con la stessa struttura di tabella e mantenere le identità chiave?

Io uso Sql Server 2012 "Denali" e voglio copiare alcuni dati da un DB Sql Server 2008. Le tabelle che ho sono esattamente le stesse ma voglio i dati dal vecchio DB nel nuovo DB "Denali". I database sono su server diversi.

Quindi voglio qualcosa di simile

USE newDB;
GO
SELECT *
INTO newTable
FROM OldDb.oldTable WITH (KEEPIDENTITY);
GO

Qualcuno ha un suggerimento per rendere questo possibile?

Risposta accettata

Configura un server collegato e fai riferimento alla query. Potrebbe essere necessario utilizzare anche IDENTITY_INSERT .

I componenti SSIS integrati in SSMS possono anche caricare dati da diverse origini (XML, file flat o server locale / remoto).


Risposta popolare

Aveva questo problema oggi e non ha funzionato :( Devi usare i nomi completi dei database se entrambi i DB sono sullo stesso server. Non dimenticare lo schema .dbo .

Select  *
INTO [NEW DB].dbo.Lab_Tests
from [OLD DB].dbo.Lab_Tests


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow