Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Query SQL su più database

Penso che il problema dei duplicati non sia quello di unire i due database, ma piuttosto il tuo join in primo luogo. Penso che potresti aver bisogno di un join INNER o OUTER per gestire il collegamento. Per quanto riguarda il recupero dei dati da due diversi database, la sintassi è abbastanza semplice. Basta aggiungere il nome del server punto il nome del database punto il nome del proprietario punto il nome della tabella.

Ad esempio:

SELECT firstdb.*, seconddb.*
FROM Server1.Database1.dbo.myTable AS firstdb
INNER JOIN Server2.Database2.dbo.myTable AS seconddb
   ON firstdb.id = seconddb.id

Nel tuo esempio, sembra che tu stia facendo funzionare il collegamento ma hai un problema di unione nel campo repair_ord. Anche se non conosco il tuo schema, suppongo che questo collegamento dovrebbe essere un INNER JOIN. Se aggiungi entrambe le tabelle nell'istruzione FROM e non esegui correttamente la tua istruzione WHERE, ti metterai nei guai come stai descrivendo.

Suggerirei di semplificare questa configurazione e di inserirla in un ambiente di test (su un DB). Prova l'unione a quattro tavoli finché non lo fai bene. Quindi aggiungi le complessità delle chiamate multi-database.