Azure SQL DACPAC 部署失败 - 不支持目标架构的兼容性级别。

wat*_*tdo 5 azure sql-server-data-tools azure-sql-database

我似乎在将架构部署到 Azure SQL 数据库(上周创建,兼容性 140)时遇到问题。

我们有一个 SSDT DACPAC 架构要部署到,它与 IaaS SQL Server 2016 实例完美配合,但是当将目标版本更改为 Azure SQL V12 并尝试通过 VSTS 部署到我们的 PaaS 数据库时,我收到此错误:

[错误] 错误 SQL72020:不支持目标架构的兼容级别。

我们已尝试将 Compatbility MSBuild 值设置为 120,130,140 并将其留空 - 似乎没有任何区别。以下是 .sqlproj 文件的摘录:

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <Name>DataSchema</Name>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectVersion>4.1</ProjectVersion>
    <ProjectGuid>{5d100d18-648c-4aac-9884-8a7b3c97f033}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP>
    <OutputType>Database</OutputType>
    <RootPath>
    </RootPath>
    <RootNamespace>CustomerData</RootNamespace>
    <AssemblyName>CustomerData</AssemblyName>
    <ModelCollation>1033,CI</ModelCollation>
    <DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
    <DeployToDatabase>True</DeployToDatabase>
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <TargetLanguage>CS</TargetLanguage>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <SqlServerVerification>False</SqlServerVerification>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseSet>True</TargetDatabaseSet>
    <DefaultCollation>SQL_Latin1_General_CP1_CI_AS</DefaultCollation>
    <DefaultFilegroup></DefaultFilegroup>
    <TargetDatabase>Data</TargetDatabase>
    <CompatibilityMode></CompatibilityMode>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

从 MSDN 教程看来,它应该像创建 SSDT DACPAC 项目一样简单,选择 SQL Azure V12 作为目标数据库类型,然后作为发布的一部分执行部署数据库任务。

wat*_*tdo 2

所以我们解决了这个问题 - 但我不确定这是否是一个错误,Azure SQL 兼容性的默认值现在是 140 - 奇怪的是,当将我们的架构兼容性设置为 140 时,它仍然不起作用。

将 Azure SQL 数据库兼容性级别设置为 130,并将 SSDT 项目设置为相同级别,部署成功。