You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure SQL Server导入.bacpac遇SQL72014错误,求解决建议

解决方案

核心结论

  1. 绝对不能执行UPDATE sys.configurations:Azure SQL DB是托管服务,系统目录表为只读,执行该语句会直接报错Ad hoc updates to system catalogs are not allowed,且实例级的contained database authentication配置在Azure SQL DB中根本不存在。
  2. 问题根源是目标数据库未启用部分包含模式——Azure SQL DB的包含数据库设置是数据库级属性,而非实例级配置。

具体解决步骤

1. 检查目标数据库的包含模式

执行以下查询确认当前状态:

SELECT containment, name 
FROM sys.databases 
WHERE name = '你的目标数据库名';
  • 返回0:未启用包含模式(默认状态)
  • 返回1:已启用部分包含模式

2. 启用目标数据库的部分包含模式

情况一:目标数据库尚未创建

创建数据库时直接指定包含模式:

CREATE DATABASE [目标库名]
(
    EDITION = 'GeneralPurpose', -- 根据需求选择版本,如Basic、Standard等
    SERVICE_OBJECTIVE = 'GP_Gen5_2' -- 对应服务层级,按需调整
)
WITH CONTAINMENT = PARTIAL;

情况二:目标数据库已存在

直接修改数据库属性:

ALTER DATABASE [目标库名] SET CONTAINMENT = PARTIAL;

注意:执行该操作时需确保数据库无长时间运行的事务,Azure SQL DB会自动处理锁机制,无需手动切换单用户模式。

3. 处理SQL72012警告(文件组冲突)

该警告是因为目标数据库已存在[data_0]、[log]等文件组,导入bacpac时无法覆盖。解决方式:

  • 若目标数据库无重要数据,先删除目标数据库,再重新创建带包含模式的空库后执行导入。
  • 若需保留目标数据库,导入时确认工具(如Azure Portal、SSMS)的“覆盖现有数据库”选项已勾选。

验证

完成上述设置后,重新执行bacpac导入操作,即可解决SQL72014错误,同时避免SQL72012的文件组冲突问题。

内容的提问来源于stack exchange,提问作者rAJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:50:40