如何获取卡住的MS SQL数据库的文件路径 恢复
我以“带替换”备份的形式将更新分发到数据库,但用户可以将其安装到任何硬盘驱动器上的任何位置,这意味着我需要在运行“通过移动恢复”之前对其进行“Exec SP_HelpFile”。但 SP_HelpFile 要求我首先“使用数据库”,如果它已经陷入失败的恢复中,我就无法执行此操作。如果我无法告诉它在哪里恢复,我什至无法运行“With Recovery”。有没有办法使用Master数据库来获取文件名?现在我唯一的解决方案是删除并重新安装,但我希望自动更新程序能够自行处理它。
更新:服务器版本为 2005 & 2005 2008年
I distribute updates to our database in the form of backups "With Replace", but the users can install it to any location on any hard drive, which means I need to "Exec SP_HelpFile" on it before running "Restore With Move". But SP_HelpFile requires me to "Use TheDatabase" first, which I can't do if it's already stuck in a failed restore. I can't even run "With Recovery" if I can't tell it where to restore. Is there any way to use the Master database to get the filenames? Right now my only solution is to delete and reinstall, but I'd like the automated updater to be able to handle it on its own.
UPDATE: Server version is 2005 & 2008
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 SQL 2005+ 中,您可以使用系统视图 sys.master_files。
In SQL 2005+, you can use the system view sys.master_files.
您应该能够获取路径+文件名,而无需使用数据库。 sp_helpfile 使用本地 sys.sysfiles,但现在至少您可以使用目录视图 sysaltfiles,出于向后兼容性原因,仍处于 master 状态...这是假设 SQL Server 2005+(请始终指定您正在使用的 SQL Server 版本) ):
You should be able to get the path+filename without having to use the database. sp_helpfile uses the local sys.sysfiles but for now at least you can use the catalog view sysaltfiles, still in master for backward compatibility reasons... this is assuming SQL Server 2005+ (please always specify the version of SQL Server you're using):
在SQL Server 2008中,您应该使用如下:
In the SQL Server 2008, you should use as follows: