Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
As ferramentas de comparação de esquema permitem comparar duas definições de banco de dados, onde a origem e o destino da comparação podem ser qualquer combinação de banco de dados conectado, projeto de banco de dados SQL ou .dacpac arquivo. Quando a comparação estiver concluída, os resultados da comparação aparecem como um conjunto de ações que tornam o destino igual à fonte. As diferenças entre os modelos de banco de dados são apresentadas de maneira semelhante a uma comparação de controle do código-fonte. Se o destino de comparação de esquema for um projeto SQL ou um banco de dados, você poderá atualizar o destino diretamente da interface de comparação de esquema ou gerar um script de atualização que tenha o mesmo efeito.
A comparação de esquema fornece os seguintes recursos:
- Compare esquemas entre dois
.dacpacarquivos, bancos de dados ou projetos SQL. - Veja os resultados como um conjunto de ações para comparar um alvo com a origem.
- Exclua seletivamente as ações listadas nos resultados.
- Defina opções que controlam o escopo da comparação.
- Aplique as alterações diretamente no destino ou gere um script para aplicar as alterações posteriormente.
- Guarde a comparação.
Functionality
As diferenças entre origem e destino aparecem em uma grade para facilitar a revisão. A comparação pode ser feita em qualquer direção entre um modelo de banco de dados derivado de qualquer uma das seguintes opções:
- banco de dados conectado
- Projeto de banco de dados SQL
- arquivo
.dacpac
Na comparação de esquemas, pode-se analisar e rever cada diferença na grelha de resultados ou em forma de script, onde os detalhes das alterações estão disponíveis ao nível de cada linha. Você também pode excluir seletivamente diferenças específicas antes de atualizar o alvo. As ferramentas de comparação de esquema estão disponíveis no Visual Studio, no Azure Data Studio e na linha de comando.
Opções de comparação de esquema
As opções para comparação de esquema são extraídas das opções de implantação disponíveis na biblioteca DacFx .NET. Essas opções incluem:
- Ignorar espaço em branco
- Ignorar esquemas de partição
- Ignorar a ordem das colunas
- remover índices não presentes na origem
- bloqueio de possível perda de dados
Os tipos de objeto incluídos na comparação também podem ser configurados. Esses objetos incluem tabelas, procedimentos armazenados, índices, permissões, tipos definidos pelo usuário e muito mais.
Arquivos de comparação de esquema
A definição de comparação para comparação de esquema pode ser salva como um .scmp arquivo, conhecido como um arquivo de comparação de esquema. Este arquivo armazena informações sobre a comparação de esquema em XML e inclui:
- Informações de conexão de origem e destino
- Opções de comparação
- Tipos de objeto excluídos
Um .scmp arquivo pode ser aberto no Visual Studio ou no Azure Data Studio para executar facilmente a mesma comparação novamente mais tarde ou para compartilhar a comparação com outras pessoas.
Iniciar e usar a comparação de esquemas
No menu Ferramentas do Visual Studio, selecione SQL Server e, em seguida, selecione Nova Comparação de Esquema.
Como alternativa, clique com o botão direito do mouse no projeto TradeDev no Gerenciador de Soluções e selecione Comparação de Esquema.
A janela Comparação de esquema é aberta e o Visual Studio atribui automaticamente um nome como
SqlSchemaCompare1.Dois menus de lista suspensa com uma seta verde entre eles são exibidos logo abaixo da barra de ferramentas da janela Comparar Esquema. Esses menus permitem que você selecione definições de banco de dados para sua origem e destino de comparação.
Na lista suspensa Selecionar código-fonte , escolha Selecionar código-fonte e a caixa de diálogo Selecionar esquema de origem será aberta.
Se você abriu a janela Comparação de esquema clicando com o botão direito do mouse no nome do projeto, o esquema de origem já está preenchido e você pode prosseguir para a etapa 4.
Conclua as seleções para uma fonte de comparação de esquema escolhendo um projeto, conexão de banco de dados ou arquivo .dacpac . A origem é a definição de banco de dados que você deseja usar como base para alterações no destino.
Na lista suspensa Selecionar destino na janela Comparação de esquema, escolha Selecionar destino e a caixa de diálogo Selecionar esquema de destino abrir-se-á. Conclua as seleções para um destino de comparação de esquema escolhendo um projeto, conexão de banco de dados ou arquivo .dacpac . O destino é a definição de banco de dados à qual você deseja avaliar e, potencialmente, aplicar alterações.
Você também pode selecionar o botão Opções na barra de ferramentas Janela de comparação de esquema para especificar quais objetos são comparados, quais tipos de diferenças são ignorados e outras configurações.
Selecione o botão Comparar na barra de ferramentas Janela de comparação de esquema para iniciar o processo de comparação.
Quando a comparação estiver concluída, as diferenças estruturais entre o projeto e o banco de dados aparecerão no painel Resultados na parte superior da janela. O grupo de resultados da comparação todas as diferenças são agrupadas por ação (como Excluir, Alterar ou Adicionar) por padrão. O painel Resultados exibe uma linha para cada objeto de banco de dados que difere entre as definições de banco de dados. Cada linha identifica o objeto no esquema de origem ou de destino (ou ambos) e a ação que seria executada no esquema de destino para tornar o objeto de destino igual ao objeto de origem. Se um objeto foi refatorado e renomeado ou movido para um novo esquema, os nomes de origem e destino são diferentes, e o nome de origem aparece em negrito para realçar a diferença.
Por padrão, a lista de resultados oculta objetos que são os mesmos em ambos os esquemas ou que não são suportados para atualização (por exemplo, objetos internos). Você pode selecionar os botões de filtro apropriados na barra de ferramentas para mostrar esses objetos.
Para alterar a preferência de agrupamento, selecione a lista suspensa Agrupar Resultados na barra de ferramentas. Selecione Tipo para agrupar os resultados por tipo de objeto (por exemplo, por tabelas, exibições ou procedimentos armazenados).
Por padrão, todas as diferenças são incluídas no escopo da ação Atualizar destino. Você pode excluir diferenças que não deseja sincronizar. Para fazer isso, desmarque a coluna Ação no centro de cada linha. Como alternativa, clique com o botão direito do mouse em uma linha no painel Esquema e selecione Excluir. A linha fica imediatamente acinzentada. Quando a comparação de esquema é usada para atualizar o banco de dados de destino, essa linha não é considerada para quaisquer alterações pendentes.
Você também pode clicar com o botão direito do mouse em uma linha de grupo e selecionar Excluir tudo ou Incluir tudo, o que equivale a desmarcar ou marcar todas as diferenças nesse grupo. Quando você agrupa os resultados por esquema, clicar com o botão direito do mouse na linha do grupo é uma maneira útil de incluir ou excluir todas as alterações em um esquema específico.
Se a linha que está sendo excluída tiver algum objeto dependente (por exemplo, uma linha Tabela referenciada por uma linha Exibir ), a linha excluída será desabilitada, mas sua caixa de seleção não será desmarcada. Quando todas as linhas que dependem dele são desmarcadas, a linha desativada é desmarcada. Além disso, se uma linha for refatorada (renomeada ou movida para outro esquema), a caixa de seleção será desabilitada para essa linha e qualquer uma de suas linhas filhas dependentes.
Se você atualizar a comparação, as diferenças que você escolheu ignorar serão ignoradas.
Para atualizar o esquema do alvo, o utilizador tem duas opções. Você pode atualizar o destino diretamente da janela Comparação de esquema se o destino for um banco de dados ou projeto, ou pode gerar um script de atualização se o destino for um banco de dados ou um arquivo de banco de dados. Um script gerado aparece no Editor de Transact-SQL, a partir do qual você pode inspecionar o script executá-lo em um banco de dados.
Note
A comparação de esquema gráfico está parcialmente disponível na visualização de projetos SQL no estilo SDK no Visual Studio. Comparações de esquema estão disponíveis para bancos de dados e .dacpac arquivos conectados, projetos de banco de dados SQL ainda não estão disponíveis.
No menu Ferramentas do Visual Studio, selecione SQL Server e, em seguida, selecione Nova Comparação de Esquema.
Como alternativa, clique com o botão direito do mouse no projeto TradeDev no Gerenciador de Soluções e selecione Comparação de Esquema.
A janela Comparação de esquema é aberta e o Visual Studio atribui automaticamente um nome como
SqlSchemaCompare1.Dois menus de lista suspensa com uma seta verde entre eles são exibidos logo abaixo da barra de ferramentas da janela Comparar Esquema. Esses menus permitem que você selecione definições de banco de dados para sua origem e destino de comparação.
Na lista suspensa Selecionar código-fonte , escolha Selecionar código-fonte e a caixa de diálogo Selecionar esquema de origem será aberta.
Se você abriu a janela Comparação de esquema clicando com o botão direito do mouse no nome do projeto, o esquema de origem já está preenchido e você pode prosseguir para a etapa 4.
Conclua as seleções para uma fonte de comparação de esquema escolhendo um projeto, conexão de banco de dados ou arquivo .dacpac . A origem é a definição de banco de dados que você deseja usar como base para alterações no destino.
Na lista suspensa Selecionar destino na janela Comparação de esquema, escolha Selecionar destino e a caixa de diálogo Selecionar esquema de destino abrir-se-á. Conclua as seleções para um destino de comparação de esquema escolhendo um projeto, conexão de banco de dados ou arquivo .dacpac . O destino é a definição de banco de dados à qual você deseja avaliar e, potencialmente, aplicar alterações.
Você também pode selecionar o botão Opções na barra de ferramentas Janela de comparação de esquema para especificar quais objetos são comparados, quais tipos de diferenças são ignorados e outras configurações.
Selecione o botão Comparar na barra de ferramentas Janela de comparação de esquema para iniciar o processo de comparação.
Quando a comparação estiver concluída, as diferenças estruturais entre o projeto e o banco de dados aparecerão no painel Resultados na parte superior da janela. Por padrão, os resultados da comparação agrupam todas as diferenças por ação (como Excluir, Alterar ou Adicionar). O painel Resultados exibe uma linha para cada objeto de banco de dados que difere entre as definições de banco de dados. Cada linha identifica o objeto no esquema de origem ou de destino (ou ambos) e a ação que seria executada no esquema de destino para tornar o objeto de destino igual ao objeto de origem. Se um objeto foi refatorado e renomeado ou movido para um novo esquema, os nomes de origem e destino são diferentes, e o nome de origem aparece em negrito para realçar a diferença.
Por padrão, a lista de resultados oculta objetos que são os mesmos em ambos os esquemas ou que não são suportados para atualização (por exemplo, objetos internos). Você pode selecionar os botões de filtro apropriados na barra de ferramentas para mostrar esses objetos.
Para alterar a preferência de agrupamento, selecione a lista suspensa Agrupar Resultados na barra de ferramentas. Selecione Tipo para agrupar os resultados por tipo de objeto (por exemplo, por tabelas, exibições ou procedimentos armazenados).
Por padrão, todas as diferenças são incluídas no escopo da ação Atualizar destino. Você pode excluir diferenças que não deseja sincronizar. Para fazer isso, desmarque a coluna Ação no centro de cada linha. Como alternativa, clique com o botão direito do mouse em uma linha no painel Esquema e selecione Excluir. A linha fica imediatamente acinzentada. Quando a comparação de esquema é usada para atualizar o banco de dados de destino, essa linha não é considerada para quaisquer alterações pendentes.
Você também pode clicar com o botão direito do mouse em uma linha de grupo e selecionar Excluir tudo ou Incluir tudo, o que equivale a desmarcar ou marcar todas as diferenças nesse grupo. Quando você agrupa os resultados por esquema, essa é uma maneira útil de incluir ou excluir todas as alterações em um esquema específico.
Se a linha que está sendo excluída tiver algum objeto dependente (por exemplo, uma linha Tabela referenciada por uma linha Exibir ), a linha excluída será desabilitada, mas sua caixa de seleção não será desmarcada. Quando todas as linhas que dependem dele são desmarcadas, a linha desativada é desmarcada. Além disso, se uma linha for refatorada (renomeada ou movida para outro esquema), a caixa de seleção será desabilitada para essa linha e qualquer uma de suas linhas filhas dependentes.
Se você atualizar a comparação, as diferenças que você escolheu ignorar serão ignoradas.
Para atualizar o esquema do alvo, o utilizador tem duas opções. Você pode atualizar o destino diretamente da janela Comparação de esquema se o destino for um banco de dados ou projeto, ou pode gerar um script de atualização se o destino for um banco de dados ou um arquivo de banco de dados. Um script gerado aparece no Editor de Transact-SQL, a partir do qual você pode inspecionar o script executá-lo em um banco de dados.
Informações mais detalhadas sobre a comparação de esquema no Visual Studio Code estão disponíveis no artigo Comparação de esquema
No Visual Studio Code na paleta de comandos (
ctrl/cmd+shift+P), procure e selecione MSSQL: Schema Compare.Como alternativa, clique com o botão direito do mouse em um projeto de banco de dados na visualização Projetos de Banco de Dados ou em um banco de dados no Pesquisador de Objetos e selecione Comparação de Esquema.
A janela Comparação de Esquema é aberta e uma origem ou um destino pode ser pré-definido com base no ponto de inicialização.
Dois botões de reticências com uma seta entre eles aparecem justamente abaixo da barra de ferramentas da janela Esquema de Comparação. Esses menus permitem que você selecione definições de banco de dados para sua origem e destino de comparação.
Selecionar o botão de reticências para a origem ou destino abre uma caixa de diálogo onde cada um deles pode ser atualizado. Conclua as seleções para uma fonte de comparação de esquema escolhendo um projeto, conexão de banco de dados ou arquivo .dacpac . A origem é a definição de banco de dados que você deseja usar como base para alterações no destino. O destino é a definição de banco de dados à qual você deseja avaliar e, potencialmente, aplicar alterações.
Quando as seleções estiverem concluídas, selecione OK para fechar a caixa de diálogo e retornar à janela Comparação de esquema .
Você também pode selecionar o botão Opções na barra de ferramentas Janela de comparação de esquema para especificar quais objetos são comparados, quais tipos de diferenças são ignorados e outras configurações.
Selecione o botão Comparar na barra de ferramentas Janela de comparação de esquema para iniciar o processo de comparação.
Quando a comparação estiver concluída, as diferenças estruturais entre o projeto e o banco de dados aparecerão no painel Resultados na parte superior da janela. Por padrão, os resultados da comparação agrupam todas as diferenças por ação (como Excluir, Alterar ou Adicionar). O painel Resultados exibe uma linha para cada objeto de banco de dados que difere entre as definições de banco de dados. Cada linha identifica o objeto no esquema de origem ou de destino (ou ambos) e a ação que seria executada no esquema de destino para tornar o objeto de destino igual ao objeto de origem. Se um objeto tiver sido refatorado e renomeado ou movido para um novo esquema, os nomes de origem e de destino serão diferentes, e o nome da fonte aparecerá em negrito para destacar a diferença.
Por padrão, todas as diferenças são incluídas no escopo da ação Atualizar destino. Você pode excluir diferenças que não deseja sincronizar. Para fazer isso, desmarque a coluna Ação no centro de cada linha. Quando a comparação de esquema é usada para atualizar o banco de dados de destino, essa linha não é considerada para quaisquer alterações pendentes.
Se a linha que está sendo excluída tiver algum objeto dependente (por exemplo, uma linha Tabela referenciada por uma linha Exibir ), a linha excluída será desabilitada, mas sua caixa de seleção não será desmarcada. Quando todas as linhas que dependem dele são desmarcadas, a linha desativada é desmarcada. Além disso, se uma linha for refatorada (renomeada ou movida para outro esquema), a caixa de seleção será desabilitada para essa linha e qualquer uma de suas linhas filhas dependentes.
Se você atualizar a comparação, as diferenças que você escolheu ignorar serão ignoradas.
Para atualizar o esquema do alvo, o utilizador tem duas opções. Você pode atualizar o destino diretamente da janela Comparação de esquema com o botão Aplicar se o destino for um banco de dados ou projeto, ou pode gerar um script de atualização se o destino for um banco de dados com o botão Gerar script . Um script gerado aparece no Editor de Transact-SQL, a partir do qual você pode inspecionar o script executá-lo em um banco de dados.
A comparação de esquema requer uma ferramenta gráfica, como o Visual Studio, ou a extensão MSSQL para Visual Studio Code.