Partilhar via


Visão geral das referências entre banco de dados

Você pode criar ou importar objetos de banco de dados que se referem a objetos em outros bancos de dados.Esses referências de todos os bancos de dados exigem que você defina uma referência correspondente nas propriedades do seu projeto de banco de dados.Se você se referir a objetos em outros bancos de dados, mas você não definir as referências correspondentes no seu projeto, avisos serão exibidos.Para cada banco de dados que você faz referência, você pode definir as variáveis SETVAR que correspondem ao servidor e banco de dados que você deseja referenciar.Quando você modifica uma definição de objeto para incluir a referência, você pode defini-la usando essas variáveis em vez de nomes explícitos do servidor e o banco de dados.Quando você compilação projeto banco de dados, as variáveis são substituídas pelos valores que você especificou.

Observação:

Para fazer referências de todos os bancos de dados específico em uma configuração da compilação específica, você deve definir as variáveis SETVAR essas referências em termos de MSBuild variáveis. Por exemplo, você pode usar um conjunto de MSBuild variáveis quando você criar e implantar um projeto de banco de dados em um servidor intermediário e outro conjunto quando você cria e implanta o mesmo projeto em um servidor de produção. Se você definir as variáveis SETVAR para obter uma referência de banco de dados em termos de servidor e os nomes de banco de dados, a referência funcionarão da mesma forma, independentemente de qual compilação configuração que você especificar.

Cenários de banco de dados entre referências

Visual Studio Team System Database Edition suporta os seguintes cenários:

  • Você criou um projeto de banco de dados e importado do esquema de um banco de dados existente.O esquema contém objetos que se referem a objetos em um ou mais outros bancos de dados.Nas propriedades do projeto, defina uma referência correspondente e substituir os nomes explícitos do servidor e o banco de dados com SETVAR variáveis.Por causa desta definição, cross-banco de dados referências podem ser validadas em time de design.Você também pode implantar o projeto de banco de dados para um ambiente de desenvolvimento isolado, onde o nome do destino servidor é diferente do nome do servidor de destino em seu ambiente de produção.

  • Você tem um projeto de banco de dados que contém referências cross-database e essas referências usar SETVAR variáveis para identificar servidores e bancos de dados.Para alterar os nomes dessas variáveis e atualização as definições de objeto que contêm essas referências.

  • Você deseja referenciar adicionais do banco de dados esquemas do projeto de banco de dados que você está desenvolvendo.Você deseja compartilhar apenas desses esquemas com a equipe sem a necessidade de compartilhar os outros projetos de banco de dados com eles.Você pode adicionar uma referência para os metarquivos do banco de dados (.dbmeta) para os outros projetos e inclua somente os metarquivos no controle de versão.Usando essa abordagem, você pode restringir o acesso os projetos de banco de dados que contêm os esquemas que você deseja referenciar.Você também deve usar essa abordagem se você desejar implantar um projeto de banco de dados mas não todos os projetos que dependem dele.

Você pode usar Refatoração de banco de dados para executar tarefas adicionais com referências de todos os bancos de dados.Para obter mais informações, consulte Como: Renomear referências um servidor ou a banco de dados.

Referências a projetos de banco de dados e metarquivos

Quando você adiciona uma referência em um projeto de banco de dados, você pode especificar outro projeto de banco de dados ou um metarquivo, que é produzido quando você compilação um projeto de banco de dados.

Você deve consultar a outro projeto de banco de dados se:

  • Você deve fazer alterações para os esquemas o banco de dados que irá conter a referência e o banco de dados ao qual você está se referindo.Quando você implantar o projeto de banco de dados que contém a referência, você também irá implantar o projeto de banco de dados ao qual você está se referindo.

Você deve consultar um banco de dados metarquivo se:

  • Você deve se referir a um banco de dados cujo projeto não está na solução corrente.

  • Você deve implantar um projeto único sem implantar os projetos nos quais ele depende.

  • Você está se referindo a um esquema de banco de dados que não tenha a possibilidade de alterar.Nesse cenário, você pode verificar o banco de dados metarquivo ao controle de versão.

Limitações do banco de dados entre referências

Quando você importa um esquema de banco de dados, as referências a outros bancos de dados de definições de objetos produzem avisos porque o projeto de banco de dados não pode validar essas referências antes de implantá-lo.Depois de definir referências a bancos de dados nas propriedades do projeto, você pode validar as definições de objeto e resolver os avisos.Você pode atualizar as definições de objeto, substituindo os nomes dos servidores e bancos de dados por variáveis.Você também pode usar a refatoração para realizar essa substituição.Para obter mais informações, consulte Como: Criar banco de dados entre referências e Como: Renomear referências um servidor ou a banco de dados.

As variáveis e valores para os servidores e bancos de dados que você faz referência não são específicas para uma configuração da compilação.Para especificar o servidor e banco de dados em um aviso de comando, você precisa referir-se a eles em termos de MSBuild variáveis, que podem ser substituídas em time de implantação.

As seguintes limitações se aplicam também:

  • Você pode adicionar uma referência a um banco de dados somente se ele tiver um projeto de banco de dados correspondente.

  • Você deve compilação um projeto de banco de dados antes de adicionar uma referência para o metarquivo para esse projeto de banco de dados.

  • Você deve construir os projetos de banco de dados ao qual você está se referindo, de modo que todos os bancos de dados referências a eles irão resolver sem avisos.

  • Se você alterar a configuração da compilação da solução ou dos projetos de banco de dados ao qual você está se referindo, talvez seja necessário recriar a solução para que todos os bancos de dados referências a eles resolverá sem avisos.

  • Se você fizer referência a um objeto em um projeto de banco de dados em outro servidor, você deve defini-la sistema autônomo um servidor vinculado no seu servidor de destino.Para obter mais informações, consulte Como: Criar banco de dados entre referências.

  • Não é necessário uma referência de banco de dados para se referir a banco de dados mestre.

  • Referências que incluem variáveis SETVAR sempre devem ter a forma "[$)NomeDaVariável)]".Se você omitir os colchetes, talvez não seja capaz de implantar o projeto de banco de dados.

  • Nomes de variáveis SETVAR devem ser exclusivos.Se o seu servidor tiver o mesmo nome de seu banco de dados, você deve definir sistema autônomo variáveis que têm nomes diferentes, mas que resolver com o mesmo valor.

Considerações sobre segurança

O metarquivo é criado quando você cria um projeto de banco de dados contém informações de esquema para esse projeto.Você deve limitar o acesso para o metarquivo de proteger essas informações de esquema.Você pode compartilhar metarquivos com a equipe, marcando-os em controle de versão, em vez de implantá-los para o servidor de destino.Se o projeto de banco de dados para o banco de dados ao qual você está se referindo estiver na mesma solução, outros desenvolvedores sobre o projeto terá acesso ao sincronizar com o controle de versão e desenvolver a solução.

Exemplo

Se você tiver dois projetos de banco de dados, ReportDb e DependentDb, convém para fazer referência a objetos no DependentDb de ReportDb.Você começar adicionando uma referência sistema autônomo propriedades do projeto de banco de dados a DependentDb e define sistema autônomo variáveis da seguinte maneira:

  • RefServer

  • RefDatabase

O valor para RefServer é o nome do servidor no qual reside DependentDb.O valor para RefDatabase é o nome do banco de dados de destino é implantado o projeto DependentDb.Neste exemplo, RefServer tem o valor StageSvr e RefDatabase tem o valor DepDb.

Você pode adicionar um modo de exibição para ReportDb seleciona todas as colunas da tabela Funcionários em DependentDb implantada no banco de dados chamado DepDb no servidor chamado StageSvr.Você deve criar a definição de objeto para esse modo de exibição da seguinte maneira:

CREATE VIEW [dbo].[DependentView]
AS
SELECT * FROM [$(RefServer)].[$(RefDatabase)].[dbo].[Employee]
;

Consulte também

Tarefas

Como: Renomear referências um servidor ou a banco de dados

Conceitos

Trabalhando com objetos de banco de dados

Visão geral da terminologia do banco de dados edição

Outros recursos

Como: Criar banco de dados entre referências