Azure SQL导入.bacpac文件遇错误,如何忽略索引创建?
解决BACPAC导入报错及忽略索引创建的问题
你遇到的Msg 1919错误核心是列类型不兼容,但如果确实需要跳过索引创建,可通过以下两种方式处理:
方式1:修改BACPAC包结构后重新导入
BACPAC本质是zip压缩包,可直接解压修改内部元数据:
- 将
.bacpac文件重命名为.zip,解压到本地文件夹 - 找到核心结构文件
model.xml,搜索dbo.Dbt_tb_Associate_MemberBasic对应的<Index>标签,删除目标索引的定义节点 - 同时可检查并修正
SRC_MBR_ID列的类型定义,确保与目标SQL Server版本兼容 - 修改完成后,将文件夹重新压缩为zip格式,改回
.bacpac后缀后重新导入
方式2:用SqlPackage.exe命令行跳过索引
使用SQL Server官方命令行工具导入时,可指定参数忽略所有索引创建:
SqlPackage.exe /Action:Import /SourceFile:"C:\你的文件路径\xxx.bacpac" /TargetConnectionString:"Server=目标服务器;Database=目标库名;Trusted_Connection=True;" /p:IgnoreIndexes=True
导入完成后,可手动在目标库重建需要的索引。
额外建议
优先排查SRC_MBR_ID列的类型问题:比如源库使用了目标版本不支持的自定义类型、旧版SQL Server特有类型,直接修正类型比跳过索引更能保证数据完整性;若仅需跳过特定索引,修改model.xml是更精准的选择。
内容的提问来源于stack exchange,提问作者Zaynul Abadin Tuhin
相关产品推荐
相关产品推荐

