Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Criar um novo projeto SQL no estilo SDK é uma tarefa rápida. No entanto, se já tiveres projetos SQL, podes convertê-los em projetos SQL ao estilo SDK para tirar partido das novas funcionalidades.
Depois de converter o projeto, pode usar as novas funcionalidades do projeto ao estilo SDK, tais como:
- Suporte multiplataforma para compilações
- Formato simplificado de ficheiro de projeto
- Referências de pacotes
Para completar a conversão com cuidado, siga estes passos:
- Crie um backup do arquivo de projeto original.
- Crie um arquivo
.dacpaca partir do projeto original para comparação. - Modifique o arquivo de projeto para um projeto no estilo SDK.
- Crie um arquivo de
.dacpaca partir do projeto modificado para comparação. - Verifique se os arquivos
.dacpacsão os mesmos.
O SQL Server Data Tools (SSDT) no Visual Studio não suporta projetos ao estilo SDK. Depois de converteres o projeto, usa uma das seguintes ferramentas para construir ou editar o projeto:
- A extensão SQL Database Projects no Visual Studio Code
- DevOps de bases de dados no SQL Server Management Studio (SSMS)
- A linha de comando
- O SQL Server Data Tools, em estilo SDK (pré-visualização), no Visual Studio 2022
Note
Você pode achar que seu projeto SQL contém personalização que estende as alterações necessárias além dessas etapas. Além deste artigo, o repositório DacFx GitHub pode ser usado para entender as alterações necessárias para atualizar de um projeto SQL original para projetos SQL no estilo SDK.
Prerequisites
Etapa 1: Criar um backup do arquivo de projeto original
Antes de converter o projeto, crie um backup do arquivo de projeto original. Desta forma, você pode reverter para o projeto original, se necessário.
No Explorador de Ficheiros, crie uma cópia do ficheiro .sqlproj do projeto que pretende converter, com .original acrescentado à extensão do ficheiro. Por exemplo, MyProject.sqlproj torna-se MyProject.sqlproj.original.
Etapa 2: Criar um arquivo de .dacpac a partir do projeto original para comparação
Abra o projeto no Visual Studio. O arquivo .sqlproj ainda está no formato original, portanto, você o abre no SQL Server Data Tools original.
Crie o projeto no Visual Studio clicando com o botão direito do mouse no nó do banco de dados em Gerenciador de Soluções e selecionando Build.
Para criar um arquivo .dacpac do projeto original, você deve usar o SSDT (SQL Server Data Tools) original no Visual Studio. Abra o ficheiro do projeto no Visual Studio com as Ferramentas de Dados do SQL Server originais instaladas.
Crie o projeto no Visual Studio clicando com o botão direito do mouse no nó do banco de dados em Gerenciador de Soluções e selecionando Build.
Abra a pasta do projeto no Visual Studio Code. Na vista Projetos de Base de Dados do Visual Studio Code, clique com o botão direito no nó do projeto e selecione Construir.
Para criar um arquivo .dacpac do projeto original, você deve usar o SSDT (SQL Server Data Tools) original no Visual Studio. Abra o ficheiro do projeto no Visual Studio com as Ferramentas de Dados do SQL Server originais instaladas.
Crie o projeto no Visual Studio clicando com o botão direito do mouse no nó do banco de dados em Gerenciador de Soluções e selecionando Build.
Podes construir projetos de bases de dados SQL a partir da linha de comandos usando o dotnet build comando.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
O processo de compilação cria um arquivo .dacpac na pasta bin\Debug do projeto por padrão. Utilize o Explorador de Ficheiros para localizar o .dacpac criado pelo processo de compilação e copie-o para uma nova pasta fora do diretório do projeto com o nome original_project.dacpac. Use este .dacpac ficheiro para comparar e validar a sua conversão mais tarde.
Etapa 3: Modificar o arquivo de projeto para um projeto no estilo SDK
Modificar o arquivo de projeto é um processo manual, melhor executado em um editor de texto. Abra o arquivo .sqlproj em um editor de texto e faça as seguintes alterações:
Obrigatório: adicione a referência do SDK
Dentro do elemento do projeto, adicione um item Sdk para referenciar Microsoft.Build.Sql e a versão mais recente de https://www.nuget.org/packages/Microsoft.build.sql, onde #.#.# está incluído no trecho abaixo.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="#.#.#" />
...
Necessário: remova importações de destino de compilação desnecessárias
Os projetos SQL originais fazem referência a vários alvos e propriedades de construção em declarações Import. Com exceção dos itens <Import/> que adicionaste explicitamente, que é uma alteração única e deliberada, remove as linhas que começam com <Import ...>.
Exemplos a remover caso estejam presentes no seu .sqlproj:
...
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Condition="..." Project="...\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
...
Necessário: Remover pasta Propriedades
Os projetos SQL originais têm uma entrada para uma pasta Properties que representava o acesso às propriedades do projeto no gerenciador de soluções. Remova este item do ficheiro do projeto.
Exemplo a remover caso esteja presente no seu .sqlproj:
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Obrigatório: Remover itens de compilação incluídos por padrão
Os projetos SQL originais listam todos os arquivos .sql que representam objetos de banco de dados explicitamente no arquivo de projeto como itens <Build Include="..." />. Em projetos SQL do tipo SDK, quaisquer ficheiros .sql na árvore de pastas do projeto (**/*.sql) são incluídos por defeito. Remova os ficheiros .sql especificados nos itens <Build Include="...." /> relativos a esses ficheiros para evitar problemas de desempenho na compilação.
Remova linhas como as seguintes do ficheiro do projeto:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
Não remova:
-
<Build Include="..." />itens para.sqlficheiros que não estão na árvore de pastas do projeto SQL -
<PreDeploy Include="..." />ou<PostDeploy Include="..." />itens, porque esses nós ditam comportamentos específicos desses ficheiros - Itens que não sejam ficheiros
.sql, como ficheiros.publish.xmlem itens<None Include="..." />, ficheiros.refactorlog.xmlem itens<RefactorLog Include="..." />ou ficheiros.xsdem itens<Build Include="..." />
Opcional: Remover referências ao SSDT
O SSDT (SQL Server Data Tools) original exigia conteúdo extra no arquivo de projeto para detetar a instalação do Visual Studio. Essas linhas são desnecessárias em projetos SQL no estilo SDK e podem ser removidas:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>
Opcional: Remover configurações de compilação padrão
Os projetos SQL originais incluem dois blocos grandes para as definições de Release e Debug build, enquanto nos projetos SQL ao estilo SDK o SDK conhece os padrões dessas opções. Se você não tiver personalizações nas configurações de compilação, considere remover estes blocos:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
As propriedades do projeto na referência listam as propriedades disponíveis e seus valores padrão.
Etapa 4: Arquivos de solução
Seu arquivo de projeto pode ser referenciado em um arquivo de solução (.sln). Se tiver um ficheiro de solução, atualize-o para referenciar o novo ficheiro de projeto ao estilo SDK. Se não tiver um ficheiro de solução, pode saltar esta secção e avançar para o Passo 5.
Opção 1: Criar um novo arquivo de solução
Se o ficheiro de solução contiver apenas o projeto SQL, é mais fácil remover o ficheiro de solução e criar um novo ficheiro de solução com o projeto ao estilo SDK.
dotnet new sln --name MySolution
dotnet sln MySolution.sln add MyDatabaseProject\MyDatabaseProject.sqlproj
Opção 2: Editar o arquivo de solução
Se o ficheiro de solução contiver vários projetos, atualize o ficheiro de solução para referenciar o novo ficheiro de projeto ao estilo SDK. Você pode editar o arquivo de solução em um editor de texto e alterar a referência do projeto para o novo arquivo de projeto no estilo SDK. A referência do projeto no arquivo de solução deve ter esta aparência:
Project("{PROJECT_TYPE_GUID}") = "MyDatabaseProject", "MyDatabaseProject\MyDatabaseProject.sqlproj", "{PROJECT_GUID}"
EndProject
O valor de PROJECT_TYPE_GUID para um projeto Microsoft.Build.Sql é 42EA0DBD-9CF1-443E-919E-BE9C484E4577. O PROJECT_GUID é um identificador único do projeto, encontrado no elemento <ProjectGuid> do ficheiro de projeto. Se tiveres um ficheiro de solução com o teu projeto, não precisas de alterar o PROJECT_GUID valor. Altere o valor de PROJECT_TYPE_GUID para o GUID do tipo de projeto Microsoft.Build.Sql.
Etapa 5: Criar um .dacpac arquivo do projeto modificado para comparação
O projeto SQL não é mais compatível com o Visual Studio 2022. Para construir ou editar o projeto, utilize uma das seguintes opções:
- A linha de comando
- A extensão SQL Database Projects no Visual Studio Code
- As ferramentas de dados do SQL Server, estilo SDK (pré-visualização), no Visual Studio 2022
- SQL Server Management Studio (SSMS) com a funcionalidade Database DevOps (em pré-visualização)
O arquivo de projeto agora está no formato estilo SDK, mas para abri-lo no Visual Studio 2022, você deve ter o SQL Server Data Tools, estilo SDK (visualização) instalado. Abra o projeto no Visual Studio 2022 com SQL Server Data Tools e o estilo SDK (pré-visualização) instalado.
Abra a pasta do projeto no Visual Studio Code. Na vista Projetos de Base de Dados do Visual Studio Code, clique com o botão direito no nó do projeto e selecione Construir.
Abra o ficheiro do projeto no SQL Server Management Studio (SSMS) com a carga de trabalho Database DevOps (pré-visualização) instalada. No Explorador de Objetos, clique com o botão direito no projeto da base de dados e selecione Construir.
Podes construir projetos de bases de dados SQL a partir da linha de comandos usando o dotnet build comando.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
O processo de compilação cria um arquivo .dacpac na pasta bin\Debug do projeto por padrão. No Explorador de Ficheiros, localize o .dacpac criado pelo processo de compilação e copie-o para uma nova pasta fora do diretório do projeto. Use este .dacpac ficheiro para comparar e validar a sua conversão mais tarde.
Etapa 6: Verifique se os .dacpac arquivos são os mesmos
Para verificar se a conversão foi bem-sucedida, compare os arquivos .dacpac criados a partir dos projetos originais e modificados. Use as capacidades de comparação de esquemas dos projetos SQL para visualizar a diferença nos modelos de base de dados entre os dois .dacpac ficheiros. Alternativamente, use a utilidade de linha de comandos DacpacVerify para comparar os dois .dacpac ficheiros, incluindo os seus scripts pré/pós-implementação e definições do projeto.
Podes instalar o DacpacVerify como uma ferramenta dotnet. Para instalar a ferramenta, execute o seguinte comando:
dotnet tool install --global Microsoft.DacpacVerify --prerelease
A sintaxe para DacpacVerify exige especificar os caminhos de dois arquivos .dacpac como dacpacverify <source DACPAC path> <target DACPAC path>. Para comparar os dois arquivos .dacpac, execute o seguinte comando:
DacpacVerify original_project.dacpac modified_project.dacpac
Podes usar a ferramenta de comparação de esquemas para comparar objetos nos .dacpac ficheiros.
Inicie o Visual Studio sem um projeto carregado. Vá para Ferramentas >SQL Server>Nova Comparação de Esquemas. Selecione o arquivo .dacpac original como origem e o arquivo .dacpac modificado como destino. Para obter mais informações sobre como usar a comparação de esquema no Visual Studio, consulte usando a comparação de esquema para comparar diferentes definições de banco de dados.
A comparação de esquema gráfico ainda não está disponível na visualização de projetos SQL no estilo SDK no Visual Studio. Usa o Visual Studio Code para comparar esquemas.
No Visual Studio Code, instala a extensão SQL Server Schema Compare se ainda não estiver instalada. Inicie uma nova comparação de esquema a partir da paleta de comandos abrindo a paleta de comandos com Ctrl/Cmd+Shift+P e digitando Schema Compare.
Selecione o arquivo .dacpac original como origem e o arquivo .dacpac modificado como destino.
A comparação gráfica de esquemas não está disponível no SQL Server Management Studio. Use Visual Studio Code ou Visual Studio para comparar esquemas.
A comparação gráfica de esquemas está disponível no Visual Studio e no Visual Studio Code.
Quando fazes a comparação de esquemas, não devem aparecer resultados. A falta de diferenças indica que os projetos originais e modificados são equivalentes, produzindo o mesmo modelo de banco de dados no arquivo .dacpac.
Note
A comparação de arquivos .dacpac através da comparação de esquema não valida scripts de pré e pós-implementação, refactorlog ou outras configurações de projeto. Ele apenas valida o modelo de banco de dados. Usar o utilitário de linha de comando DacpacVerify é a maneira recomendada de validar se os dois arquivos .dacpac são equivalentes.