每当导入从 Azure SQL Server 导出的
.BACPAC
数据层文件时,我都会收到此错误消息:
无法导入包。
警告 SQL72012:对象 [database_name_Data] 存在于目标中,但即使您选中“为目标数据库中但不在源中的对象生成删除语句”复选框,也不会删除该对象。
警告 SQL72012:对象 [database_name_Log] 存在于目标中,但即使您选中了“为目标数据库中但不在源中的对象生成删除语句”复选框,该对象也不会被删除。
错误 SQL72014:框架 Microsoft SqlClient 数据提供程序:
消息 547,级别 16,状态 0,第 3 行
ALTER TABLE 语句与 FOREIGN KEY 约束“foreign_key_id”冲突。冲突发生在数据库“database_name”、表“[dbo].[Table_name]”、列“Id”中。错误 SQL72045:脚本执行错误。执行的脚本: PRINT N'检查约束:foreign_key_id [dbo].[Table_log]';
ALTER TABLE [dbo].[Table_log] with CHECK 检查约束 [foreign_key_id];
(微软.SqlServer.Dac)
我已经检查并实施了以下线程中提供的解决方案:
但是我没有运气...
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint “foreign_key_id”. The conflict occurred in database “database_name”, table “[dbo].[Table_name]”, column ‘Id’.
Error SQL72045: Script execution error. The executed script: PRINT N’Checking constraint: foreign_key_id [dbo].[Table_log]’;
ALTER TABLE [dbo].[Table_log] WITH CHECK CHECK CONSTRAINT [foreign_key_id];
(Microsoft.SqlServer.Dac)
根据this,当进程已插入所有表中的所有行并且需要启用约束/索引时,将出现上述错误。指出相关表中不存在外键。
要解决上述错误,请按照以下说明操作:
确保导出期间没有发生写入活动,或者您正在从数据库的事务一致副本导出。
确保您的 SQL Server 版本已更新。
使用最新版本的SSMS,选择导入SSMS中的Data-tier Application,如下图
欲了解更多信息,您可以参考以下链接: