我刚刚在我的个人 SQL 实例中发出了嘘声。我想将 tempdb 文件分别移动到 C:\tempdb.mdf 和 C:\templog.ldf。alter database ...modify file... 命令成功运行。但是,我没有意识到我不能在 C:\ 中创建文件,只能在那里创建文件夹。因此,在运行修改文件命令并重新启动服务后,并没有创建新文件,即 C:\tempdb.mdf 和 C:\templog.ldf。
当我尝试获取 tempdb 数据库的属性以查看文件指向的位置时,我发现我无法获取属性,也无法再连接到数据库实例。因此,即使我可以在配置管理器中重新启动服务,我也无法使用 SSMS 或 SQLCMD 连接到实例。我收到找不到文件的错误。
除了重新安装实例(因为我没有主数据库的备份),请问有没有其他方法可以解决这个问题?
谢谢你。
我相信您应该能够以最小配置模式启动 SQL Server 实例,并使用 SQLCMD 通过命令提示符连接到它,如本文所述:如果丢失了 TEMPDB 数据文件,如何启动 SQL Server。请注意,这会将服务器置于单用户模式。
连接到它后,您应该能够执行
ALTER DATABASE tempdb MODIFY FILE
并将文件位置修改到适当的位置。然后关闭并重新启动实例。上述文章中的步骤供参考: