Fis*_*ake 9 sql azure bacpac azure-sql-database
我正在尝试将SQL Azure数据库的备份(.bacpac)还原到另一个SQL Azure数据库,但由于以下错误而无法执行此操作:
服务操作期间遇到错误.无法导入包.错误SQL72014:.Net SqlClient数据提供程序:消息547,级别16,状态0,行3 ALTER TABLE语句与FOREIGN KEY约束"FK_x_xx"冲突.冲突发生在数据库"x",表"dbo.x"中.错误SQL72045:脚本执行错误.执行的脚本:PRINT N'Checking约束:FK_x_xx [dbo].[x]'; ALTER TABLE [dbo].[x] WITH CHECK CHECK CONSTRAINT [FK_x_xx];
我还试图在本地恢复但没有成功使用mscorlib异常(我将再次尝试它并将很快更新确切的错误消息.
我检查了实时数据库,我看不出为什么这个密钥被违反了.
我还尝试修改model.xml包含在.bacpac中删除约束,但这失败了,因为它现在(正确地说)失败了校验和验证.
sim*_*olo 14
bacpac文件不是事务性的,因此在生成bacpac时写入目标数据库的新行最终会破坏索引.数据库要么没有其他用户连接进行写入,要么您可以复制数据库并从副本中生成bacpac.
1)复制目标数据库,它将立即返回,但数据库将需要一些时间来复制.此操作将创建完整的事务副本:
CREATE DATABASE <name> AS COPY OF <original_name>
Run Code Online (Sandbox Code Playgroud)
2)查找复制操作的状态:
SELECT * FROM sys.dm_database_copies
Run Code Online (Sandbox Code Playgroud)
3)在复制的数据库上生成bacpac文件,任何人都不会使用该文件.
4)删除复制的数据库,你将有一个工作的bacpac文件.
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |