Extensão de Projetos de Base de Dados SQL

A extensão Projetos do Banco de Dados SQL é uma extensão do Azure Data Studio e Visual Studio Code para desenvolver bancos de dados SQL em um ambiente de desenvolvimento baseado em projeto. Os bancos de dados compatíveis incluem o SQL Server, o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure e o Azure Synapse SQL. Um projeto 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. Quando um projeto do Banco de dados SQL é criado, o artefato de saída é um arquivo .dacpac . Bancos de dados novos e existentes podem ser atualizados para corresponder ao conteúdo do .dacpac publicando o projeto do Banco de dados SQL com a extensão Projetos do Banco de Dados SQL ou publicando o .dacpac com a interface de linha de comando SqlPackage.

Resumo de projetos de banco de dados SQL contendo scripts de pré e pós-implantação, bem como objetos de banco de dados.

Recursos de extensão

A extensão Projetos do Banco de Dados SQL fornece os seguintes recursos:

  • Crie um novo projeto em branco.
  • Crie um novo projeto a partir de um banco de dados conectado.
  • Abra um projeto criado anteriormente no Azure Data Studio, no Visual Studio Code ou no SQL Server Data Tools.
  • Edite um projeto adicionando ou removendo objetos (tabelas, exibições, procedimentos armazenados) ou scripts personalizados no projeto.
  • Organize arquivos/scripts em pastas.
  • Adicione referências a bancos de dados do sistema ou a um dacpac de usuário.
  • Crie um único projeto.
  • Implante um único projeto.
  • Carregue detalhes de conexão (autenticação SQL Windows) e variáveis SQLCMD do perfil de implantação.

Os seguintes recursos na extensão Projetos do Banco de Dados SQL estão atualmente em visualização:

Assista a este pequeno vídeo de 10 minutos para obter uma introdução à extensão Projetos do Banco de Dados SQL no Azure Data Studio:

Instalar

Você pode instalar a extensão do Projeto do Banco de Dados SQL no Azure Data Studio e no Visual Studio Code.

Azure Data Studio

Para instalar a extensão de projeto do Banco de Dados SQL no Azure Data Studio, siga estas etapas:

  1. Abra o gerenciador de extensões para acessar as extensões disponíveis. Para fazer isso, selecione o ícone de extensões ou selecione Extensões no menu Exibir .

  2. Identifique a extensão Projetos do Banco de Dados SQL digitando todo ou parte do nome na caixa de pesquisa da extensão. Selecione uma extensão disponível para visualizar seus detalhes.

    Captura de ecrã do Azure Data Studio, Instalar extensão.

  3. Selecione a extensão desejada e escolha instalá-la.

  4. Selecione Recarregar para ativar a extensão (necessário apenas na primeira vez que você instala uma extensão).

  5. Selecione o ícone Projetos na barra de atividades.

Nota

É recomendável instalar a extensão Schema Compare junto com a extensão SQL Database Projects para obter funcionalidade completa.

Visual Studio Code

A extensão Projetos do Banco de Dados SQL é instalada com a extensão mssql para Visual Studio Code.

Dependências

A extensão Projetos do Banco de Dados SQL depende do SDK do .NET (obrigatório) e do AutoRest.Sql (opcional).

SDK do .NET

O SDK do .NET é necessário para a funcionalidade de compilação do projeto e você será solicitado a instalar o SDK do .NET se uma versão suportada não puder ser detetada pela extensão. O SDK do .NET pode ser baixado e instalado para Windows, macOS e Linux.

Se você quiser verificar as versões atualmente instaladas do dotnet SDK, abra um terminal e execute o seguinte comando:

dotnet --list-sdks

Depois de instalar o SDK do .NET, seu ambiente está pronto para usar a extensão Projetos do Banco de Dados SQL.

Problemas comuns

Nuget.org ausentes da lista de fontes podem resultar em mensagens de erro, tais como:

  • error MSB4236: The SDK 'Microsoft.Build.Sql/0.1.9-preview' specified could not be found.
  • Unable to find package Microsoft.Build.Sql. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages

Para verificar se nuget.org está registrado como uma fonte, execute dotnet nuget list source a partir da linha de comando e revise os resultados de um [Enabled] item referenciando nuget.org. Se nuget.org não estiver registrado como fonte, execute dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org.

Versões não suportadas do SDK do .NET podem resultar em mensagens de erro, como:

  • error MSB4018: The "SqlBuildTask" task failed unexpectedly.
  • error MSB4018: System.TypeInitializationException: The type initializer for 'SqlSchemaModelStaticState' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. [c:\Users\ .sqlproj]_ (onde o arquivo inexistente vinculado tem um colchete de fechamento incomparável).

Para forçar a extensão Projetos do Banco de Dados SQL a usar a versão v6.x do SDK do .NET quando várias versões forem instaladas, adicione um arquivo de global.json à pasta que contém o projeto SQL.

AutoRest.Sql

A extensão SQL para AutoRest é baixada e usada automaticamente pela extensão Projetos do Banco de Dados SQL quando um projeto SQL é gerado a partir de um arquivo de especificação OpenAPI.

Limitações

Atualmente, a extensão do Projeto do Banco de Dados SQL tem as seguintes limitações:

  • As tarefas (compilar/publicar) não são definidas pelo usuário.
  • Não há suporte para objetos SQLCLR em projetos.
  • As regras de análise de código em projetos não são suportadas no momento.

Área de trabalho

Os projetos de banco de dados SQL estão contidos em um espaço de trabalho lógico no Azure Data Studio e no Visual Studio Code. Um espaço de trabalho gerencia as pastas visíveis no painel Explorer. Todos os projetos SQL dentro das pastas abertas no espaço de trabalho atual estão disponíveis no modo de exibição Projetos do Banco de Dados SQL por padrão.

Você pode adicionar e remover projetos manualmente de um espaço de trabalho por meio da interface no painel Projetos . As configurações de um espaço de trabalho podem ser editadas manualmente no .code-workspace arquivo, se necessário.

No arquivo de exemplo .code-workspace a seguir, a folders matriz lista todas as pastas incluídas no painel Explorer e a dataworkspace.excludedProjects matriz dentro settings lista todos os projetos SQL excluídos do painel Projetos .

{
  "folders": [
    {
      "path": "."
    },
    {
      "name": "WideWorldImportersDW",
      "path": "..\\WideWorldImportersDW"
    }
  ],
  "settings": {
    "dataworkspace.excludedProjects": [
      "AdventureWorksLT.sqlproj"
    ]
  }
}