Partilhar via


Adicionar arquivos existentes a um projeto SQL

Aplica-se a: SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL em Microsoft Fabric

Como conceito, uma vez que um projeto SQL é criado, os objetos podem ser adicionados a ele um de cada vez ou em massa. Adicionar objetos um de cada vez é simples, enquanto a adição de objetos em massa pode ser feita a partir do conteúdo de um arquivo ou de um .dacpac ou mais scripts SQL. Este artigo explica como adicionar o conteúdo de um dacpac ou scripts SQL a um projeto SQL e as compensações entre as fontes.

Importar de um .dacpac ficheiro

Um .dacpac arquivo é um modelo de banco de dados compilado e requer ferramentas específicas para ler e aplicar o arquivo. Um .dacpac ficheiro pode ser gerado como um artefacto de construção de um projeto SQL ou a partir de uma base de dados existente, e pode ser fornecido sem acesso ao código fonte. Para além das muitas ferramentas que podem aplicar um .dacpac a uma base de dados, SQL Server Data Tools (SSDT) em Visual Studio pode importar o conteúdo de um ficheiro .dacpac diretamente para um projeto. A capacidade de importar esquema de um banco de dados ou um arquivo .dacpac só está disponível se não houver objetos de esquema já definidos no projeto.

 Captura de ecrã do menu de importação num projeto SQL em Visual Studio SSDT.

Na importação, as definições de objeto são inseridas em arquivos de projeto usando os padrões organizacionais do SSDT para novos objetos: novos arquivos para objetos de nível superior, filhos hierárquicos definidos no mesmo arquivo que o pai, restrições de tabela/coluna definidas em linha sempre que possível. Para obter visibilidade e controle mais direcionados para cada objeto, use Comparação de esquema em vez de Importar. Se a fonte de importação contiver scripts pré e pós-implantação, RefactorLogs, ou definições de variáveis SQLCMD, elas serão importadas para o projeto. Se o projeto já contiver qualquer um desses artefatos, os arquivos importados serão adicionados a uma pasta Ignorado na importação no projeto.

Se o Visual Studio e o SQL Server Data Tools não estiverem disponíveis, também pode:

  • Use a extensão Schema Compare em Visual Studio Code para comparar o conteúdo de um ficheiro .dacpac com um projeto, e depois aplicar seletivamente as alterações ao projeto.
  • Use o utilitário de linha de comando SqlPackage para importar o conteúdo de um .dacpac arquivo para um banco de dados e, em seguida, crie um projeto a partir do banco de dados.

Importar de scripts SQL

Scripts T-SQL podem ser importados para um projeto SQL de duas formas: adicionando os ficheiros de script ao diretório do projeto ou processando o conteúdo dos scripts no Visual Studio. O método escolhido depende do tipo de projeto e do nível desejado de controle sobre o processo de importação. Em ambos os casos, a sintaxe dos arquivos de script deve ser válida.

Adicionar arquivos a um projeto

Com projetos SQL no estilo SDK, você pode adicionar scripts SQL existentes a um projeto colocando-os no diretório do projeto porque o Microsoft.Build.Sql inclui automaticamente todos os *.sql arquivos no projeto. Se estiveres a usar um projeto que não seja do tipo SDK, tens de importar scripts SQL existentes para o projeto utilizando o processamento de scripts em Visual Studio. Os *.sql arquivos incluídos automaticamente no projeto são incluídos na compilação do modelo de banco de dados como objetos SQL.

Um arquivo adicionado à pasta do projeto contendo uma definição de objeto duplicada para um objeto já presente no projeto faz com que a compilação do projeto falhe. Você precisa resolver manualmente o conflito removendo o objeto duplicado ou renomeando um dos objetos.

Para adicionar um arquivo a um projeto como um script pré/pós-implantação, além de adicionar o arquivo ao diretório do projeto, você também deve incluir o arquivo no arquivo do projeto. Por exemplo, para adicionar um arquivo nomeado Pre-DeploymentScript.sql como um script de pré-implantação, adicione o seguinte ao arquivo de projeto:

<ItemGroup>
  <PreDeploy Include="Pre-DeploymentScript.sql" />
</ItemGroup>

Mais informações sobre scripts pré/pós-implantação podem ser encontradas na documentação de projetos SQL.

Processar o conteúdo dos arquivos

O SQL Server Data Tools (SSDT) no Visual Studio também tem a capacidade de processar o conteúdo de scripts SQL enquanto os adiciona a um projeto de estilo original. Durante esse processamento, se um script contiver um objeto já definido no projeto, a definição do objeto será atualizada para corresponder ao script. Se o script contiver um objeto ainda não definido no projeto, um novo arquivo será criado para o objeto.

Existem problemas conhecidos em que o processamento dos scripts pode resultar em restrições duplicadas e instruções de chave de encriptação. Se você encontrar esses problemas, utilize a janela de saída da compilação para identificar a origem das duplicatas e removê-las manualmente do projeto.

O processo Import from Script não incorpora scripts pré/pós-implantação, variáveis SQLCMD ou arquivos RefactorLog. Essas e quaisquer outras construções sem suporte que são detetadas na importação são colocadas em um arquivo ScriptsIgnoredOnImport.sql em uma pasta Scripts em seu projeto.

Ficheiros XSD

Os projetos SQL também suportam a importação de ficheiros XSD para gerar coleções de esquemas XML na base de dados. Para mais informações sobre como configurar ficheiros XSD num projeto SQL, consulte colecções de esquemas XML em projetos SQL.