Udostępnij za pośrednictwem


Omówienie platformy docelowej

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed Instancebaza danych SQL w usłudze Microsoft Fabric

Ustawienie platformy docelowej jest właściwością projektu używaną podczas kompilacji projektu w celu weryfikowania obsługi funkcji zawartych w projekcie, takich jak składnia języka T-SQL i funkcje systemowe. Ustawienie platformy docelowej jest włączone do artefaktu kompilacji .dacpac, a podczas wdrażania ustawienie platformy docelowej jest sprawdzane względem docelowej bazy danych w celu zapewnienia zgodności. Jeśli platforma docelowa nie jest zgodna z bazą danych, wdrożenie nie rozpocznie się, chyba że określono właściwość publikowania /p:AllowIncompatiblePlatform=true.

Przykład i składnia pliku projektu SQL

Właściwość projektu platformy docelowej znajduje się w tagu DSP w pliku .sqlproj w elemencie <PropertyGroup>:

<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="1.0.0" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP>
  </PropertyGroup>
...

Prawidłowe wartości platformy docelowej w tagu DSP obejmują:

  • Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider (SQL Server 2014)
  • Microsoft.Data.Tools.Schema.Sql.Sql130DatabaseSchemaProvider (SQL Server 2016)
  • Microsoft.Data.Tools.Schema.Sql.Sql140DatabaseSchemaProvider (SQL Server 2017)
  • Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider (SQL Server 2019)
  • Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider (SQL Server 2022)
  • Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider (Azure SQL Database)
  • Microsoft.Data.Tools.Schema.Sql.SqlDbFabricDatabaseSchemaProvider (baza danych SQL w Fabric lub dublowana baza danych SQL w Fabric, wersja zapoznawcza)
  • Microsoft.Data.Tools.Schema.Sql.SqlDwDatabaseSchemaProvider (pula SQL usługi Azure Synapse)
  • Microsoft.Data.Tools.Schema.Sql.SqlServerlessDatabaseSchemaProvider (bezserwerowa pula SQL usługi Azure Synapse)
  • Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider (Synapse Data Warehouse w Microsoft Fabric)

Zmienianie platformy docelowej

Aby zmienić platformę docelową projektu SQL w programie Visual Studio, kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję właściwości . Na zakładce ustawień projektu okna właściwości wybierz odpowiednią platformę docelową z listy rozwijanej Platforma docelowa.

Aby zmienić platformę docelową projektu SQL w programie Visual Studio, kliknij prawym przyciskiem myszy projekt w eksploratorze rozwiązań i wybierz pozycję właściwości . W karcie Ustawienia projektu w oknie właściwości wybierz żądaną platformę docelową z listy rozwijanej Platforma docelowa.

Aby zmienić platformę docelową projektu SQL w rozszerzeniu SQL Database Projects, kliknij prawym przyciskiem myszy projekt w widoku projektów baz danych i wybierz pozycję Zmień platformę docelową. Wybierz nową platformę docelową z listy rozwijanej.

Alternatywnie możesz edytować plik .sqlproj bezpośrednio, aby zmienić platformę docelową. Otwórz plik .sqlproj z widoku Eksplorator lub kliknij prawym przyciskiem myszy na projekt w widoku Projekty Baz Danych i wybierz opcję Edytuj plik .sqlproj . W edytorze tekstów zmień wartość w tagu DSP na żądaną platformę docelową.

Aby utworzyć projekt SQL dla platformy docelowej innej niż platforma docelowa określona w pliku .sqlproj, użyj argumentu wiersza polecenia /p:DSP=. Aby na przykład utworzyć projekt SQL pod kątem zgodności z programem SQL Server 2019:

dotnet build /p:DSP=Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider

Publikowanie na innej platformie docelowej

Podczas publikowania projektu SQL platforma docelowa projektu musi być zgodna z platformą docelową bazy danych. Jeśli platformy docelowe nie są zgodne, wdrożenie kończy się przed zastosowaniem jakichkolwiek zmian z powodu błędu. Aby opublikować projekt w bazie danych z inną platformą docelową, użyj właściwości publikowania /p:AllowIncompatiblePlatform=true.