Usuário com melhor resposta
Como relacionar uma tabela com outra tabela num outro banco de dados no SQL Server 2008

Pergunta
-
Prazado companheiros, agradecxo desde ja o auxilido da comunidade, meu problema é o seguinte eu tenho duas tabelas porem ambas estao em banco de daos diferente mas na mesma instancia SQL, exemplicando melhor:
tem um banco de dados (A), e outro (B), digamos q no banco de dados (A) exista uma tabela UF, e no banco de dados (B) eu tenho uma tabela cidade, porem a tabela cidade e filha da tabela UF, como eu consigo montar o relacionamento entre as tabelas que estao em bancos de dadis diferentes.
Respostas
-
Waldecy.
A sua necessidade é criar FK entre essas duas tabelas ou somente ligá-las em um select e retornar?
Vc consegue fazer um Join entre esses dois bancos da seguinte forma:
SELECT Estado.Sigla, Cidade.Nome
FROM Banco1.dbo.tableEstado Estado
INNER JOIN Banco2.dbo.tableCidade Cidade
ON Estado.id = Cidade.idEstado
O problema é que o nome do banco de dados estará fixo na sua consulta, mas ai vc consegue montar a string do Select e executar tb... ai tem as alternativas.
Flw!- Marcado como Resposta Fernanda Simões sexta-feira, 10 de julho de 2009 12:58
Todas as Respostas
-
Bom Dia,
Isso não é possível de fazer via mecanismos tradicionais (PK e FK). A razão é muito simples. Provocar uma dependência entre bancos de dados irá gerar algumas questões administrativas:
- O que acontece se o banco A cair ? A tabela Cidade do Banco B poderá ser acessada ?
- Como gerenciar os backups do banco A e do banco B para não gerar registros que violem a PK ?
- O que acontece se você precisar voltar um backup antigo do banco A cuja PK ainda não foi escrita, mas que o banco B tem as dependências ?
Por essas e outras que não é possível fazer o relacionamento entre bancos de dados diferentes. Se essa é uma necessidade, você terá que controlar esse relacionamento via aplicação / triggers.
[ ]s,Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comCertificados, Cross Database Ownership Chaining e Segurança
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!622.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 6 de julho de 2009 12:02
-
Waldecy.
A sua necessidade é criar FK entre essas duas tabelas ou somente ligá-las em um select e retornar?
Vc consegue fazer um Join entre esses dois bancos da seguinte forma:
SELECT Estado.Sigla, Cidade.Nome
FROM Banco1.dbo.tableEstado Estado
INNER JOIN Banco2.dbo.tableCidade Cidade
ON Estado.id = Cidade.idEstado
O problema é que o nome do banco de dados estará fixo na sua consulta, mas ai vc consegue montar a string do Select e executar tb... ai tem as alternativas.
Flw!- Marcado como Resposta Fernanda Simões sexta-feira, 10 de julho de 2009 12:58