Partilhar via


Database DevOps (pré-visualização) no SQL Server Management Studio

Um projeto de banco de dados SQL é uma representação local de objetos SQL que compõem o esquema para um único banco de dados, como tabelas, procedimentos armazenados ou funções. O ciclo de desenvolvimento de um projeto de base de dados SQL ajuda-o a integrar o desenvolvimento de bases de dados em fluxos de trabalho de integração contínua e implementação contínua (CI/CD) que são familiares como melhores práticas de desenvolvimento. No SSMS, pode usar projetos Microsoft.Build.Sql em versão de pré-visualização para ajudar a implementar, gerir e colaborar nas alterações de base de dados, fornecendo uma definição local dos objetos da base de dados.

Este artigo descreve como utilizar projetos de bases de dados SQL no SQL Server Management Studio (SSMS) como parte ou para ancorar fluxos de trabalho DevOps de bases de dados. Para mais informações sobre projetos de bases de dados SQL, consulte projetos de bases de dados SQL.

Pré-requisitos

Criar um novo projeto

Para trabalhar com projetos de bases de dados SQL no SSMS, precisas de uma pasta local que contenha os ficheiros do teu projeto. Pode iniciar um projeto extraindo objetos de uma base de dados existente ou criando novos ficheiros de objeto do zero.

Captura de ecrã do diálogo do Novo Projeto no SQL Server Management Studio.

Observação

O SSMS pode pedir que se ligue a um servidor ao abrir um ficheiro no Explorador de Soluções. Pode realizar desenvolvimento de projetos de bases de dados SQL offline sem se ligar a uma base de dados.

Adicionar objetos a partir de uma base de dados existente

Use o SqlPackage para extrair o esquema de uma base de dados existente em ficheiros individuais .sql organizados por tipo de objeto. Execute o seguinte comando para criar uma estrutura de pastas com os seus objetos da base de dados:

sqlpackage /Action:Extract /SourceConnectionString:"<connection-string>" /TargetFile:"<temp-folder>" /p:ExtractTarget=SchemaObjectType

O /p:ExtractTarget=SchemaObjectType parâmetro organiza os ficheiros extraídos em subpastas com base no esquema e no tipo de objeto (por exemplo, dbo/Tables, dbo/StoredProcedures). Extrai para uma pasta temporária fora do diretório do teu projeto e depois usa o Explorador do Windows para copiar o conteúdo desejado para a pasta do projeto.

Para mais informações sobre as opções de extração do SqlPaquet, consulte Extração do SqlPaquet.

Criar novos objetos

Adicione novos objetos de base de dados ao seu projeto criando .sql ficheiros na pasta do projeto. Cada ficheiro deve conter uma única CREATE instrução para um objeto da base de dados. Por exemplo, uma definição de tabela:

CREATE TABLE [dbo].[Products]
(
    [ProductId] INT NOT NULL PRIMARY KEY,
    [ProductName] NVARCHAR (100) NOT NULL,
    [Price] DECIMAL (10, 2) NOT NULL
);

Organize ficheiros por esquema e tipo de objeto usando subpastas, como dbo/Tables ou Sales/StoredProcedures. Esta estrutura corresponde à saída do extrato do SqlPackage e facilita a localização de objetos à medida que o seu projeto cresce. O processo de compilação do projeto SQL inclui todos os ficheiros .sql da pasta do projeto e das suas subpastas automaticamente.

O SSMS fornece modelos para itens comuns para o ajudar a começar. Para adicionar um novo item, clique com o botão direito no projeto no Explorador de Soluções, selecione Adicionar>Novo Item e escolha entre a lista de modelos de objetos SQL.

Abrir projetos existentes

Para abrir um projeto existente de base de dados SQL no SSMS, selecione Ficheiro>Abrir>Projeto/Solução e navegue até ao .sqlproj ficheiro.

Importante

O SSMS suporta apenas projetos ao estilo Microsoft.Build.Sql SDK. A versão mínima suportada do SDK é a 2.1.0. Se tiver um projeto SQL original criado no Visual Studio, deve convertê-lo para o formato SDK antes de o abrir.

Para orientações sobre como converter projetos SQL originais para o formato estilo SDK, veja Converter um projeto SQL original num projeto estilo SDK.

Construir projetos e implementar alterações

O fluxo de trabalho do projeto SQL consiste em dois passos principais: construir o projeto para validar e compilar o esquema, e implantar a saída compilada numa base de dados alvo.

Construção do projeto

Construir um projeto SQL valida as relações entre objetos e verifica a sintaxe T-SQL em relação à plataforma alvo especificada. O processo de compilação produz um .dacpac ficheiro, que contém um modelo compilado do esquema da base de dados.

Para construir um projeto no SSMS, clique com o botão direito no projeto no Explorador de Soluções e selecione Construir.

Captura de ecrã do Explorador de Soluções a mostrar a opção de compilação de projetos SQL.

A saída da compilação mostra quaisquer erros ou avisos. Erros indicam problemas que impedem a implementação, como uma vista que faz referência a uma tabela que não existe. Os avisos evidenciam potenciais problemas, como carcaças inconsistentes nos nomes dos objetos.

Numa compilação bem-sucedida, o .dacpac ficheiro é criado na bin\Debug pasta dentro do diretório do seu projeto.

Para mais informações sobre a resolução de problemas de compilação, veja Solucionar erros de compilação de projetos SQL.

Implementação de alterações

Depois de construir o seu projeto, implemente-o .dacpac numa base de dados alvo usando a janela de diálogo Publicar no SSMS. O processo de implementação compara o .dacpac com a base de dados alvo e gera as instruções CREATE, ALTER ou DROP necessárias para sincronizar a base de dados com o seu projeto.

Para implementar, clique com o botão direito no projeto no Explorador de Soluções e selecione Publicar. No diálogo Publicar, configure a sua ligação à base de dados de destino e selecione Publicar para aplicar alterações ou Gerar Script para rever o script de implementação antes da execução.

Captura de ecrã do diálogo Publicar para implementar alterações ao projeto de base de dados SQL.

O processo de publicação é idempotente, por isso podes implementar o mesmo .dacpac várias vezes sem causar problemas. Esta abordagem permite a implementação em múltiplos ambientes (desenvolvimento, pré-produção, produção) usando o mesmo artefato compilado.

Para informações detalhadas sobre opções de implementação e configuração, consulte Começar com projetos de bases de dados SQL.