将 bacpac 文件还原到 SQL Server 2014 会导致错误 SQL72014

use*_*675 5 sql-server powershell azure-sql-database

我尝试将 SQL Azure 导出文件 ( .bacpac) 导入到本地数据库并收到以下错误。

Powershell命令

PS C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin> .\SqlPackage.exe /a:import /sf:C:\SQLDATA\Backups\test-
2015-9-10-12-10.bacpac /tdn:test-live-local /tsn:.\sql2014
Run Code Online (Sandbox Code Playgroud)

下面的错误信息

导入数据库时​​出错:无法导入包。

错误 SQL72014:.Net SqlClient 数据提供程序:

消息 547,级别 16,状态 0,第 3 行
ALTER FOREIGN KEY 约束“FK_CompanyPeopleCompany”。冲突发生在数据库“dbo.Companies”的“Id”列中。

错误 SQL72045:脚本执行错误。执行的脚本:PRINT N'检查约束:FK_CompanyPeopleCompany [dbo].[CompanyPeoples]'; ALTER TABLE [dbo].[CompanyPeoples] WITH CHECK 检查约束 [FK_CompanyPeopleCompany];

我尝试了来自实时数据库的多次备份,但没有成功。

任何帮助将不胜感激。

Ste*_*een 4

当您生成 bacpac 文件时,它是从实时数据库(用户主动更改值的数据库)导出的吗?从实时数据库导出可能会导致 bacpac 文件包含不一致的数据并且无法成功导入。这是因为与备份文件不同,bacpac 文件不保证事务一致性。创建 bacpac 的建议过程是在 Azure 中创建数据库副本(保证事务一致性),然后从不变的副本中导出。