一个或者多个文件与数据库的主文件不匹配(错误5173)
时间:2020-03-06 14:35:41 来源:igfitidea点击:
我从源代码管理中签出数据库时收到此错误。检入sql server数据库听起来很奇怪,但这是我所做的,因为这只是一个个人项目。
有人知道如何解决这个问题吗?
解决方案
我们确实不想在SQL Server中将数据库文件签入源代码管理中或者从源代码管理中签出,而必须分离文件才能正常工作,并且会带来各种风险。
如果绝对必须这样做,则应该对备份进行版本控制。
我建议对脚本进行版本控制,以创建整个数据库(表,存储过程,视图等)。
我们可以尝试从该数据文件创建数据库添加文件,并使用"创建数据库"的" ATTACH_REBUILD_LOG"选项,但是我不确定它是否可以正常工作,因为它们可能未正确分离。
我们是否同时获得了日志文件(.ldf)和" .mdf"文件的副本?我们需要两者都匹配的集合才能重新添加数据库
听起来数据文件与数据库的结构文件不匹配。
简而言之,数据(即表格行)所在的文件(大部分)不是存储数据结构(即表格的说明)的文件。至少在"现代" RDBMS系统中。因此,我们检查了数据,然后数据库识别出直到那时为止发生的结构上的某些更改(我们更改了表或者类似的内容)。
"解决此问题"的方法是检入数据库所依赖的所有文件,但是我认为这并不是我们真正想要实现的。最好(如上所述)进行备份,然后从中删除/还原数据库。
这是我的发现。
正如其他张贴者所提到的,我们确实不想将数据库文件检入和检出源代码控制。
但是,如果绝对需要并且已经完成了数据库文件的签入操作,并且遇到了与我遇到的相同的错误,则可以采用以下解决方法:
首先,分离数据库,然后删除ldf文件,然后重新添加数据库。
这就是我解决问题的方式。