Sql server 2012 附加数据库时出现NOLOCK错误

Sql server 2012 附加数据库时出现NOLOCK错误,sql-server-2012,Sql Server 2012,我的一台服务器坏了,我不得不将所有数据库移到另一台服务器上。我想在SQL Server 2012中使用“附加”功能(这些数据库是SQL Server 2005) 由于某些原因,在尝试连接大多数数据库时,我在这些数据库上遇到了一个NOLOCK错误: 由于数据移动,无法使用NOLOCK继续扫描。 无法打开新数据库“db”。创建数据库已中止。 文件激活失败。物理文件名“D:\db\xxxx\u log.ldf”可能不正确。 已创建新的日志文件“C:\db\xxxx\u log.ldf”。 (Micro

我的一台服务器坏了,我不得不将所有数据库移到另一台服务器上。我想在SQL Server 2012中使用“附加”功能(这些数据库是SQL Server 2005)

由于某些原因,在尝试连接大多数数据库时,我在这些数据库上遇到了一个
NOLOCK
错误:

由于数据移动,无法使用NOLOCK继续扫描。
无法打开新数据库“db”。创建数据库已中止。
文件激活失败。物理文件名“D:\db\xxxx\u log.ldf”可能不正确。
已创建新的日志文件“C:\db\xxxx\u log.ldf”。
(Microsoft SQL Server,错误:601)


从上面的评论来看,这个数据库已经完全被破坏了,有几种方法可以恢复它,这里详细介绍了其中一种方法:

但问题是,您永远无法确定数据处于何种状态,它很可能在事务上不一致,如果您继续尝试使用它,这很可能会在以后给您带来痛苦


最好的做法是,如果您有备份,则将其还原。

好的,在ManagementStudio中,您是否设置了工具>选项>设置事务隔离级别>读取未提交?我认为这不会影响附加操作,但谁知道呢,我不知道为什么在附加过程中会收到此错误消息。您是否使用UI执行附加,或
创建数据库。。。用于附加\u重建\u日志,或者其他方法?嗨,我用的是UI。只需转到主数据库并单击“附加”。大多数数据库都存在这种情况。请检查我提到的选项,如果当前设置为READ UNCOMMITTED,请将其从READ UNCOMMITTED更改为READ UNCOMMITTED。它位于工具>选项>查询执行>SQL Server>AdvancedNope下,恐怕也是这个错误。如果没有帮助,您的MDF文件可能已损坏(尽管我同意这是一个奇怪的症状)。希望您已经进行了备份,而此MDF不是您的备份。为什么没有.ldf文件呢?在分离这些文件之前,SQL Server是否已关闭?他们来自哪里?