Sdílet prostřednictvím


Systémové objekty projektů SQL

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Projekty SQL ověřují odkazy na databázové objekty během procesu sestavení projektu. Projekty SQL ve výchozím nastavení nezahrnují systémové objekty do databázového modelu, což může vést k chybám ověření, pokud projekt obsahuje odkazy na systémové objekty. Pokud chcete tyto chyby ověření vyřešit, zahrnuli byste odkaz na master.dacpac databázi pro cílovou platformu projektu.

Odkaz master.dacpac na databázi lze přidat jako odkaz na balíček v projektech SQL ve stylu sady Microsoft.Build.Sql SDK nebo jako odkaz na artefakty ve stylu sady SDK i v původních projektech SQL.

Přidání odkazu na balíček

Dostupné systémové databázové balíčky jsou:

Nejpřímější metodou přidání odkazu na balíček do projektu SQL je použití rozhraní příkazového řádku .NET (CLI). Následující příklad přidá odkaz na balíček do systémové databáze Azure SQL Database master do projektu SQL:

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

Tento příkaz přidá do .sqlproj souboru následující položku (verze balíčku bude odrážet nejnovější verzi dostupnou při spuštění příkazu):

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

Přidání odkazu na artefakty

Rozhraní projektů VS Code a Visual Studio SQL poskytují metodu pro přidání odkazu na artefakt do master.dacpac souboru pro cílovou platformu projektu.

Výsledné úpravy .sqlproj souboru budou vypadat podobně jako v následujícím příkladu, který přidá odkaz na artefakt do systémové databáze Azure SQL Database master v sadě 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>

Na master.dacpac soubory se odkazuje z umístění instalace aplikací, které mohou být pro některé systémy CI/CD křehké. Soubor master.dacpac můžete zkopírovat do umístění v rámci vašeho řešení a aktualizovat atributy Include a HintPath tak, aby ukazovaly na toto umístění, pokud váš systém sestavení neobsahuje soubory systémové databáze.

Databáze SQL v platformě Fabric

Databáze SQL v systémových objektech Fabric jsou součástí Microsoft.SqlServer.Dacpacs.DbFabric balíčku, ale další kroky mohou být potřeba ke správné konfiguraci odkazu na databázi SQL pro databázi SQL v prostředí Fabric.

Projekt SQL vytvořený pomocí integrované správy zdrojového kódu ve službě Fabric zahrnuje odkaz na balíček a nastavení vlastnosti DatabaseVariableLiteralValue na master. cs-CZ: Tato vlastnost je povinná, protože SQL databáze ve Fabricu neposkytuje přímý přístup k master databázi, ale na stejné systémové objekty lze odkazovat v uživatelské databázi.

Pokud vytvoříte nový projekt SQL v sadě Visual Studio nebo VS Code, musíte vlastnost aktualizovat DatabaseVariableLiteralValue tak, aby master odpovídala názvu databáze použitému v databázi SQL v prostředí Fabric.

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