0 sql-server ssms sql-server-2014
SQL Server Management Studio 无法工作,所以在谷歌搜索这个问题后,我发现我必须重新安装它。因此,重新安装后,我丢失了数据库并且没有备份。那么,有没有办法恢复呢?
背景
\n\nQ1
\n\n您是否重新安装了 SSMS 或实际的数据库引擎?你能添加一张你所看到的图片吗?
\n\n\n\nQ2
\n\n您是否使用与以前相同的登录名?如果您重新安装数据库引擎,数据库文件可能仍然存在。您可以检查一下您的default Data
/Log
文件夹,看看那里是否有数据库文件?如果是,您可以尝试再次附加这些数据库。这会返回什么?SELECT IS_SRVROLEMEMBER (\'sysadmin\')
OP-A2
\n\n\n\n\n是的,我使用与之前相同的登录名。我粘贴了“SELECT\n IS_SRVROLEMEMBER (\'sysadmin\')”并在 SQL 查询窗口上运行它,结果是“没有列名 (1) 没有其他内容。我不知道我的\n 数据库在哪里保存以查看是否可以找到与我丢失的数据库相关的任何内容。您能否告诉我们我们的数据库默认保存在 C 盘中的位置?
\n
Q3 \xc2\xa3
\n\n这意味着您是实例的系统管理员,并且您应该能够查看数据库(如果存在)。您可以尝试使用查找系统数据库select physical_name from sys.master_files where database_id = 1
并通过执行查找默认数据路径SELECT SERVERPROPERTY(\'instancedefaultdatapath\') AS [DefaultFile]
OP-A3
\n\n\n\n\n是的,我找到了两个文件:LostDatabaseName.mdf 和\n LostDatabaseName_log.ldf。现在,我如何将它们移回 SSMS?
\n
解决方案
\n\n您可以尝试将数据库附加到新实例。
\n\nEXEC sp_attach_db @dbname = N\'LostDatabaseName\', \n @filename1 = \nN\'C:\\FoldersHere\\LostDatabaseName.mdf\', \n @filename2 = \nN\'C:\\FoldersHere\\LostDatabaseName_log.ldf\'; \n
Run Code Online (Sandbox Code Playgroud)\n\nMicrosoft 文档中的示例
\n\nEXEC sp_attach_db @dbname = N\'AdventureWorks2012\', \n @filename1 = \nN\'C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\Data\\AdventureWorks2012_Data.mdf\', \n @filename2 = \nN\'C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\Data\\AdventureWorks2012_log.ldf\'; \n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n我还建议不要将所有数据库文件保存在C:\\
驱动器上。如果您的驱动器已满,您的服务器将崩溃并可能发生损坏。备份数据库并将它们放在不同的位置也很重要。