Azure SQL DACPAC部署失败:目标架构兼容级别不受支持
嗨,我来帮你搞定这个头疼的部署报错问题!先理清楚根源:你现在的Azure SQL数据库兼容级别是140,但部署时选的目标平台是Azure SQL V12——而V12对应的最高兼容级别是130,这俩不匹配,自然就触发了SQL72020错误。下面是具体的解决步骤:
先确认目标数据库的实际兼容级别
可以在Azure门户直接查看数据库属性,或者运行这条SQL命令验证:SELECT name, compatibility_level FROM sys.databases WHERE name = '你的数据库名称';确认它确实是140,这对应Azure SQL Database的V14及以上版本,不是V12。
调整SSDT项目的目标平台
打开你的SSDT项目,右键点击项目→属性→项目设置,在「目标平台」里选择Azure SQL Database(最新),或者明确选「Azure SQL Database 140」,千万别再选Azure SQL V12了。修正VSTS中MSBuild的参数配置
如果是通过VSTS的MSBuild任务生成和部署DACPAC,一定要在MSBuild参数里指定正确的兼容性级别和目标平台:/p:CompatibilityLevel=140 /p:TargetPlatform="Azure SQL Database"之前设的120、130都不对,得和数据库的实际兼容级别匹配。
检查生成配置的一致性
有时候Debug和Release配置可能各自有不同的目标平台设置,记得把所有配置的目标平台和兼容性级别都改成一致的,避免部署时用错配置。更新VSTS部署任务版本
确保你用的是最新版的「Azure SQL Database Deployment」任务,旧版本的任务可能对高兼容级别的Azure SQL数据库支持不足,换最新版能避免很多奇怪的兼容性问题。
再贴一下你遇到的错误方便对照:
[error]Error SQL72020: The compatibility level of the target schema is not supported
按照上面的步骤调整后,应该就能顺利部署了!
内容的提问来源于stack exchange,提问作者watdo

