目標平台概觀
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
目標平台設定為專案屬性,在專案建置期間使用,以驗證對專案所含功能的支援,例如 T-SQL 語法和系統函式。 目標平台設定會併入 .dacpac
組建成品,而且在部署期間會針對目標資料庫檢查目標平台設定,以確保相容性。 如果目標平台不符合資料庫,除非指定發佈屬性 /p:AllowIncompatiblePlatform=true
,否則部署不會開始。
SQL 專案檔範例和語法
目標平台專案屬性會包含在 <PropertyGroup>
項目下 .sqlproj
檔案的 DSP
標記中:
<Project DefaultTargets="Build">
<Sdk Name="Microsoft.Build.Sql" Version="0.2.0-preview" />
<PropertyGroup>
<Name>AdventureWorks</Name>
<DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP>
</PropertyGroup>
...
DSP
標籤中目標平台的有效值包括:
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 資料庫)Microsoft.Data.Tools.Schema.Sql.SqlDbFabricDatabaseSchemaProvider
(Fabric 鏡像 SQL 資料庫,預覽版)Microsoft.Data.Tools.Schema.Sql.SqlDwDatabaseSchemaProvider
(Azure Synapse SQL 集區)Microsoft.Data.Tools.Schema.Sql.SqlServerlessDatabaseSchemaProvider
(Azure Synapse 無伺服器 SQL 集區)Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider
(Microsoft Fabric 中的 Synapse 資料倉儲)
改變目標平台
要變更 Visual Studio 中 SQL 專案的目標平台,,以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。 在屬性視窗的 [專案設定] 索引標籤中,從 [目標平台] 下拉式清單中選取所需的目標平台。
要變更 Visual Studio 中 SQL 專案的目標平台,,以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。 在屬性視窗的 [專案設定] 索引標籤中,從 [目標平台] 下拉式清單中選取所需的目標平台。
若要在 SQL 資料庫專案延伸模組中變更 SQL 專案的目標平台,請以滑鼠右鍵按一下 [資料庫專案] 檢視中的專案,然後選取 [變更目標平台]。 從下拉式清單中選取新的目標平台。
或者,您可以直接編輯 .sqlproj
檔案來變更目標平台。 可從 [總管] 檢視開啟 .sqlproj
檔案,也能以滑鼠右鍵按一下 [資料庫專案] 檢視中的專案,然後選取 [編輯 .sqlproj 檔案] 來開啟。 從文字編輯器中,將 [DSP] 標籤的值變更為所需的目標平台。
若要為與 .sqlproj
檔案中指定的目標平台不同的目標平台建置 SQL 專案,請使用 /p:DSP=
命令列引數。 例如,要建立 SQL Server 2019 相容性的 SQL 專案:
dotnet build /p:DSP=Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider
發佈至不同的目標平台
發佈 SQL 專案時,專案的目標平台必須與資料庫的目標平台一致。 如果目標平台不一致,部署將會在套用任何變更之前退出,並顯示錯誤。 若要將專案發佈至具有不同目標平台的資料庫,請使用 /p:AllowIncompatiblePlatform=true
發佈屬性。