SQL Server 中隐藏的数据库

SQL Server 中隐藏的数据库

在一次中止的 TFS 导入(2008 到 2010)期间,我设法“丢失”了 2008 年的一个数据库。该数据库在 Management Studio 中不可见,但 SQL Server exe 在 .mdf 文件中有一个句柄(根据 UnLocker),它说无法附加它,因为该文件正在使用中,并且它无法附加该文件的副本(在 SQL Server 停止时创建),因为它说已经附加了一个同名的数据库。

鉴于我使用的是一直使用的相同 TFS 管理员帐户,并且始终能够看到数据库,为什么这个数据库丢失了,更重要的是,我如何再次恢复它?

答案1

这真是很奇怪!

您是否有可能正在运行另一个 SQL Server 命名实例并且该实例已附加数据库?

您是否以系统管理员或 sa 身份登录到 sql server 并且仍然看不到数据库?如果您不是 sa 并且您不是该数据库中的用户,那么您可能无法使用当前登录名查看它
查看任何数据库您当前的登录权限可能被拒绝,或者公共角色的权限可能已被撤销。

解决此问题的最简单方法是让您的 TFS 用户帐户(登录名)成为数据库中的用户。

答案2

听起来可能很傻,但是...您尝试过重新启动 SQL Server 服务吗?

有时文件锁会毫无明显原因地卡住。

答案3

您是否有权查看所有数据库活动,即查看与该数据库的开放连接?如果您可以看到针对该数据库名称的进程,则可以尝试终止该进程。

我曾经遇到过这种问题,数据库被 Management Studio 锁定,但没有明确的原因,我通过终止 SPID 解决了这个问题,这样我就可以继续进行我正在尝试进行的维护。

尝试在查询窗口中运行 sp_who2。

相关内容