我昨晚使用 SQL Azure 导入/导出服务进行的 BACPAC 有点奇怪。
在我们的数据库中有 2 个相关的表。
dbo.Documents --All Documents in the database
Id
DocName
Extension
dbo.ProcessDocuments --Doc's specific to a process
Id
DocumentId (FK -> dbo.Documents.Id with Check Constraint)
ProcessId
基于该模式,ProcessDocuments
表应该不可能包含在主表中没有伴随条目的行Documents
。
但是,在我在另一个环境中还原数据库之后,我最终得到了
7001 个条目ProcessDocuments
。他们只有 7000 个等效条目Documents
(缺少 1 个)。并且在尝试恢复时恢复ALTER TABLE CHECK CONSTRAINT
失败ProcessDocuments
我唯一能想象的是,在进行备份时,它是按顺序(按字母顺序排列???)遍历表,并一次备份数据 1 个表,并且发生了类似以下的事情。
Documents
得到备份。包含 7000 个条目- 有人向系统添加新的流程文档/插入到
Documents
&Process Documents
ProcessDocuements
得到备份。包含 7001 个条目
如果是这种情况,那么就将 BACPAC 用作有效的灾难恢复资产而言,它会产生一个巨大的问题,因为如果在系统有数据移动时使用它们,那么您的 BACPAC 可能包含数据完整性问题。
是这样吗,或者任何人都可以阐明其他可能导致这种情况的原因吗?