Extensão de Projetos de Banco de Dados SQL

A extensão Projetos de banco de dados SQL é uma extensão do Azure Data Studio e do Visual Studio Code para desenvolver bancos de dados SQL em um ambiente de desenvolvimento baseado em projetos. Os bancos de dados compatíveis incluem: SQL Server, banco de dados SQL do Azure, Instância Gerenciada de SQL do Azure e SQL do Azure Synapse. Um projeto SQL é uma representação local de objetos SQL que compõem o esquema de um banco de dados individual, como tabelas, procedimentos armazenados ou funções. Quando um projeto de 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 por meio da publicação do projeto de banco de dados SQL com a extensão Projetos de banco de dados SQL ou da publicação do .dacpac com a interface de linha de comando SqlPackage.

Summary of SQL Database Projects containing pre-deployment and post-deployment scripts as well as database objects.

Recursos da extensão

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

  • Criar um projeto em branco.
  • Criar projeto em 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 dele.
  • Organizar arquivos/scripts em pastas.
  • Adicione referências a bancos de dados do sistema ou um dacpac do usuário.
  • Compile apenas um projeto.
  • Implante apenas um projeto.
  • Carregar detalhes de conexão (autenticação do Windows para SQL) e variáveis SQLCMD usando o perfil de implantação.

Os seguintes recursos na extensão Projetos de banco de dados SQL estão em versão prévia no momento:

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

Instalar

É possível instalar a extensão de Projetos de Banco de Dados SQL no Azure Data Studio e no Visual Studio Code.

Azure Data Studio

Para instalar a extensão Projeto de 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 isso, selecione o ícone de extensões ou Extensões no menu Exibir.

  2. Identificar a extensão de Projetos de Banco de Dados SQL digitando todo ou parte do nome na caixa de pesquisa de extensão. Selecione uma extensão disponível para exibir os detalhes.

    Screenshot of Azure Data Studio, Install extension.

  3. Selecione a extensão que deseja e escolha Instalar.

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

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

Observação

Visual Studio Code

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

Dependências

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

SDK .NET

O SDK do .NET é obrigatório para a funcionalidade de build de projeto e a instalação dele será solicitada se a extensão não conseguir detectar uma versão com suporte. O SDK do .NET pode ser baixado e instalado para Windows, macOS e Linux.

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

dotnet --list-sdks

Depois de instalar o SDK do .NET, o ambiente estará pronto para usar a extensão Projetos de banco de dados SQL.

Problemas comuns

O nuget.org ausente na lista de origens pode resultar em mensagens de erro, 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 o nuget.org está registrado como uma origem, execute dotnet nuget list source na linha de comando e examine os resultados de um item [Enabled] que referencia o nuget.org. Se o nuget.org não estiver registrado como uma origem, execute dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org.

As versões do SDK do .NET sem suporte 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]_ (em que o arquivo vinculado não existente tem um colchete de fechamento sem correspondência)

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

AutoRest.Sql

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

Limitações

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

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

Workspace

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

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

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

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

Próximas etapas