Possiamo usare join per due diverse tabelle di database?


98

Possiamo usare l'operazione di unione per due tabelle di database diversi? Se sì, come lo faccio?

Entrambi i database si trovano sullo stesso server e DBMS è lo stesso.

Risposte:


187

SQL Server consente di unire tabelle da database diversi purché tali database si trovino sullo stesso server. La sintassi del join è la stessa; l'unica differenza è che è necessario specificare completamente i nomi delle tabelle.

Supponiamo che tu abbia due database sullo stesso server - Db1e Db2. Db1ha una tabella chiamata Clientscon una colonna ClientIde Db2ha una tabella chiamata Messagescon una colonnaClientId (lasciamo da parte il motivo per cui quelle tabelle si trovano in database diversi).

Ora, per eseguire un join sulle tabelle sopra menzionate, utilizzerai questa query:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId

17
Si dovrebbe forse notare che entrambi i database devono essere accessibili nello stesso contesto di sicurezza. In altre parole, se accedi con credenziali diverse per i due database, quanto sopra non funzionerà. In quel caso probabilmente dovresti usare "Server collegati".
Ian Goldby

2

È possibile utilizzare la parte dei sinonimi nel database.

inserisci qui la descrizione dell'immagine

Quindi nella procedura guidata di visualizzazione dalla scheda Sinonimi trova i sinonimi salvati e aggiungili per visualizzare e impostare semplicemente l'unione interna. inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.