¿Podemos usar join para dos tablas de bases de datos diferentes?

98

¿Podemos usar la operación de unión para dos tablas de diferentes bases de datos? Si es así, ¿cómo lo hago?

Ambas bases de datos están en el mismo servidor y DBMS es el mismo.

Vivek Kumar Ray
fuente

Respuestas:

187

SQL Server le permite unir tablas de diferentes bases de datos siempre que esas bases de datos estén en el mismo servidor. La sintaxis de unión es la misma; la única diferencia es que debe especificar completamente los nombres de las tablas.

Supongamos que tiene dos bases de datos en el mismo servidor Db1y Db2. Db1tiene una tabla llamada Clientscon una columna ClientIdy Db2tiene una tabla llamada Messagescon una columna ClientId(dejemos de lado por qué esas tablas están en diferentes bases de datos).

Ahora, para realizar una combinación en las tablas mencionadas anteriormente, utilizará esta consulta:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId
RePierre
fuente
17
Quizás debería tenerse en cuenta que ambas bases de datos deben ser accesibles en el mismo contexto de seguridad. En otras palabras, si inicia sesión con diferentes credenciales para las dos bases de datos, lo anterior no funcionará. En ese caso, probablemente tendría que utilizar "Servidores enlazados".
Ian Goldby
2

Puede utilizar la parte de sinónimos en la base de datos.

ingrese la descripción de la imagen aquí

Luego, en el asistente de visualización de la pestaña Sinónimos, busque sus sinónimos guardados y agréguelos para ver y configurar la unión interna simplemente. ingrese la descripción de la imagen aquí

Ata Hoseini
fuente