Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

consulta com junção em vários bancos de dados - erro de sintaxe


Você pode fazer referência a outros bancos de dados diretamente se o usuário tiver permissões.
<database>.<user>.<tablename>

É o "caminho" completo para a tabela do banco de dados.

Muitas vezes você usa
db1.dbo.tbl1 join db2.dbo.tbl2

onde dbo é o padrão para o proprietário do banco de dados, qualquer tabela que não pertença a um usuário específico é de propriedade do dbo por padrão.

UPDATE

Para validar a consulta, você pode expandi-la para isso
SELECT * FROM 
(SELECT a.concession as db1_CON_NUMBER FROM db1.dbo.concessions as a  
UNION 
SELECT b.[Concession Number] as db1_CON_NUMBER FROM db1.dbo.invoicing as b ) c

INNER JOIN 

(SELECT c.concession as db2_CON_NUMBER FROM db2.dbo.concessions as a 
UNION 
SELECT b.[Concession Number] as db2_CON_NUMBER FROM db2.dbo.invoicing as b ) d

ON db1_CON_NUMBER = db2_CON_NUMBER 

Mas não tive tempo de verificar se isso retornaria os dados corretos, mas você pode testar.