如果SSMS崩溃/未保存选项卡意外关闭,如何恢复未保存的脚本?


当前回答

如果您仍然没有找到恢复文件夹,您可以尝试以下方法:

开放的地对地导弹。 在上面写一些查询。 等待一段时间,确保文件以静默方式保存。 打开任务管理器并终止SSMS应用程序。 重启地对地导弹。应该会提示您打开未保存的工作。 打开提议的文件并将鼠标悬停在文件选项卡上以查看其位置。

其他回答

对于SSMS 18(特别是18.6),我在这里找到了我的备份C:\Windows\SysWOW64\Visual Studio 2017\备份文件\解决方案1。

向Matthew Lock致敬,他给了我在整个机器上搜索的想法!

上面的选项都没有帮助我恢复4天前在远程机器上执行的查询,该查询的脚本文件由于公司重新启动而没有保存并丢失。

我最终在系统视图sys的帮助下恢复了我的查询。Query_store_query和sys.query_store_query_text。

SELECT t.query_sql_text 
FROM sys.query_store_query_text t
INNER JOIN sys.query_store_query q 
    ON t.query_text_id = q.query_text_id
WHERE  q.last_execution_time between '2021-06-30' and '2021-07-03'

把这个贴出来以防有人遇到同样的问题。

谷歌检索未保存的脚本,并找到了一个解决方案。

运行下面的选择脚本。它提供了一个脚本列表及其在过去24小时内的执行时间。这将有助于检索脚本,如果我们关闭SQL Server管理工作室的查询窗口而不保存脚本。它适用于所有执行的脚本,而不仅仅是视图或过程。

Use <database>
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC

您可以在这些位置之一找到它们(取决于您使用的Windows版本)。

Windows XP

C:\Documents and Settings\YourUsername\My Documents\SQL Server Management Studio\Backup Files\

Windows / 7/10角度来看

%USERPROFILE%\Documents\SQL Server Management Studio\Backup Files

OR

%USERPROFILE%\AppData\Local\Temp

谷歌搜索了这个来源和这个来源。

也许你没有找到建议的目录,或者你的恢复文件丢失了,感谢上帝,我用一个未保存的脚本复制了崩溃,并引导我到这个目录:

C:\Users\<用户名>\OneDrive\Documents\Visual Studio <version>\Backup Files\ solution

所以,也许这可以拯救你的一天:)