Compartilhar via


Objetos do sistema de projetos SQL

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

Os projetos SQL validam referências de objeto de banco de dados durante o processo de build do projeto. Por padrão, os projetos SQL não incluem objetos do sistema no modelo de banco de dados, o que pode levar a erros de validação se o projeto contiver referências a objetos do sistema. Para resolver esses erros de validação, você incluiria uma referência de banco de dados para a master.dacpac plataforma de destino do seu projeto.

A master.dacpac referência do banco de dados pode ser adicionada como uma referência de pacote em projetos SQL no estilo SDK do Microsoft.Build.Sql ou como uma referência de artefato em projetos SQL tanto no estilo original quanto no estilo SDK.

Adicionar uma referência de pacote

Os pacotes de banco de dados do sistema disponíveis são:

O método mais direto para adicionar uma referência de pacote a um projeto SQL é usar a CLI (interface de linha de comando) do .NET. O exemplo a seguir adiciona uma referência de pacote ao banco de dados do sistema Azure SQL Database master em um projeto SQL:

dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master

Esse comando adiciona a seguinte entrada ao .sqlproj arquivo (a versão do pacote refletirá a versão mais recente disponível no momento em que o comando for executado):

...
    <ItemGroup>
        <PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
    </ItemGroup>
</Project>

Adicionar uma referência de artefato

As interfaces de projeto do VS Code e do Visual Studio SQL fornecem um método para adicionar uma referência de artefato ao master.dacpac arquivo para a plataforma de destino do seu projeto.

As edições resultantes para o arquivo .sqlproj se assemelharão ao exemplo a seguir, que adiciona uma referência de artefato ao banco de dados do sistema master SQL do Azure no Visual Studio.

<ItemGroup>
    <ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac">
      <HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac</HintPath>
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
      <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
    </ArtifactReference>
  </ItemGroup>

Os master.dacpac arquivos são referenciados do local de instalação dos aplicativos, o que pode ser frágil para alguns sistemas de CI/CD. Você pode copiar o master.dacpac arquivo para um local em sua solução e atualizar os Include atributos e HintPath para apontar para esse local se o sistema de build não incluir os arquivos de banco de dados do sistema.

Banco de dados SQL no Fabric

O banco de dados SQL nos objetos do sistema Fabric está incluído no pacote Microsoft.SqlServer.Dacpacs.DbFabric, mas talvez sejam necessárias etapas adicionais para configurar corretamente a referência ao banco de dados SQL no ambiente Fabric.

O projeto SQL criado com o controle do código-fonte integrado no Fabric inclui a referência do pacote e a DatabaseVariableLiteralValue propriedade definida como master. Essa propriedade é necessária porque o banco de dados SQL no Fabric não fornece acesso ao master banco de dados, mas os mesmos objetos do sistema podem ser referenciados no banco de dados do usuário.

Se você criar um novo projeto SQL no Visual Studio ou no VS Code, deverá atualizar a DatabaseVariableLiteralValue propriedade para master corresponder ao nome do banco de dados usado no banco de dados SQL no ambiente do Fabric.

  <ItemGroup>
    <PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
      <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
      <Version>170.0.0</Version>
    </PackageReference>
  </ItemGroup>