Estou enfrentando um erro de referência não resolvido quando tento compilar meu projeto porque ele contém visualizações que fazem referência a outro banco de dados no mesmo servidor.
Quando tento adicionar uma referência de banco de dados, sou forçado a selecionar um aplicativo da camada de dados (.dacpac), um banco de dados do sistema ou um projeto de banco de dados na solução atual.
Por que não posso usar essas opções:
O banco de dados do sistema não funciona → O banco de dados externo é um banco de dados do usuário, não master, msdb, model ou tempdb, então esta opção não é válida.
Não quero adicionar o banco de dados à solução → Este banco de dados é gerenciado separadamente, e incluí-lo no repositório significaria manter um projeto adicional inteiro que não é necessário.
.dacpac não é prático → O banco de dados referenciado muda com frequência, e manter o .dacpac atualizado no repositório AzDO exigiria atualizações manuais constantes.
A única maneira que conheço de fazer isso é incluir um dacpac para o outro banco de dados. Se ele muda com frequência, você provavelmente poderia configurar algo na pós-compilação para automatizar a cópia para o projeto de banco de dados no qual você está trabalhando, mas a menos que os objetos que você está referenciando mudem com frequência, você realmente só precisa atualizar esse arquivo se os objetos referenciados mudarem. Para muitos casos, os objetos principais que estão sendo referenciados provavelmente são bem estáticos, então você pode trabalhar apenas puxando o dacpac mais recente quando precisar ou quando algo mudar.
Você deve ter referência. O banco de dados do sistema certamente não funcionará, então você deve usar outro projeto ou dacpac como referência. Como você está referenciando objetos em seu projeto, então você sabe todos os objetos e/ou colunas necessários. Basta criar um projeto fictício e adicionar os únicos objetos que você usa em seu projeto para corrigir todos os problemas de referência. No entanto, como você mencionou que já os está usando na visualização, presumo que esteja usando 3 ou 4 nomes de partes lá. Não funcionará no SSDT. Eu sugeriria criar sinônimos para todos os objetos externos que você está usando e usá-los em vez disso. Os sinônimos suportam referências de nomes de partes 3/4.