219

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

4

16 回答 16

463

发布此内容以防有人遇到同样的问题。

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

运行以下select脚本。它提供了一个脚本列表及其在过去 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
于 2013-02-22T23:37:04.033 回答
178

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

视窗

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

Windows Vista/7/10

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

或者

%USERPROFILE%\AppData\Local\Temp

从这个来源这个来源谷歌搜索。

于 2013-02-22T23:21:43.443 回答
83

聚会有点晚了,但前面提到的位置都不适合我 - 出于某种原因,备份/自动恢复文件保存在我 PC 上的 VS15 文件夹下(这是用于 SQL Server 2016 Management Studio)

C:\Users\YOURUSERNAME\Documents\Visual Studio [version]\Backup Files\Solution1

前任:

C:\Users\YOURUSERNAME\Documents\Visual Studio 2015\Backup Files\Solution1

您可能想检查您的工具-选项-环境-导入和导出设置,设置文件的位置可能会将您指向您的备份文件夹 - 我永远不会在 VS15 文件夹下查看这个。

于 2017-08-01T12:53:48.977 回答
36

使用以下可以找到所有文件的位置~AutoRecover.~vs*.sql自动恢复文件):

C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
于 2013-08-23T08:57:07.150 回答
16

我知道这是一个旧线程,但对于任何希望在 ssms 崩溃后检索脚本的人来说,请执行以下操作

  1. 打开本地磁盘 (C):
  2. 打开用户文件夹
  3. 找到与您的用户名相关的文件夹并打开它
  4. 单击文档文件夹
  5. 单击 Visual Studio 文件夹或单击备份文件文件夹(如果可见)
  6. 单击备份文件文件夹
  7. 打开解决方案 1 文件夹
  8. 任何恢复的临时文件都将在此处。这些文件将以 vs 结尾,后跟一个数字,例如 vs9E61
  9. 打开文件并检查丢失的代码。希望有帮助。这些确切的步骤对我有用。我正在使用 Sql server Express 2017

前任:

C:\Users\[YourUsername]\Documents\Visual Studio [version]\Backup Files\Solution1
于 2017-12-02T21:47:28.363 回答
15

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

C:\Users\user\OneDrive\Documents\Visual Studio 2015\Backup Files\Solution1

所以,也许这可以节省你的时间:)

于 2016-11-12T00:46:10.113 回答
10

对于 SSMS 18,我在以下位置找到了文件:

C:\Users\YourUserName\Documents\Visual Studio 2017\Backup Files\Solution1

对于 SSMS 17,它曾经位于:

C:\Users\YourUserName\Documents\Visual Studio 2015\Backup Files\Solution1
于 2020-07-17T06:10:30.607 回答
7

我使用的是 Windows 8,并在以下路径中找到了缺少的脚本:

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files
于 2015-04-30T06:40:40.883 回答
7

转到 SSMS >> 工具 >> 选项 >> 环境 >> 自动恢复

有两种不同的设置:

1) 每分钟保存一次自动恢复信息

此选项将按一定时间间隔保存 SQL 查询文件。将此选项设置为可能的最小值以避免丢失。如果您将此值设置为 5,那么在最坏的情况下,您可能会丢失最后 5 分钟的工作。

2) 将自动恢复信息保留几天

此选项将保留指定天数的自动恢复信息。不过,如果发生意外,我建议立即打开 SQL Server Management Studio 并恢复您的文件。不要将这项重要任务拖延到未来的日期。

于 2015-12-29T06:21:22.603 回答
6

SSMSBoost 插件(目前免费)

  • 跟踪所有执行的语句(将它们保存在磁盘上)
  • 定期保存 SQL 编辑器内容的快照。您保留脚本修改的历史记录。有时“最佳”版本不是最后一个,而您想要恢复中间状态。
  • 跟踪打开的选项卡并允许在重新启动后恢复它们。未保存的选项卡也会恢复。

+吨的其他功能。(我是插件的开发者)

于 2015-12-29T14:33:15.130 回答
4

当您意外关闭 SSMS 窗口时,您可以在此处找到文件

C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1
于 2013-08-29T10:11:06.207 回答
4

我能够从以下位置恢复我的文件:

C:\Users\<yourusername>\Documents\SQL Server Management Studio\Backup Files\Solution1

每个选项卡应该有不同的恢复文件。我会说寻找丢失日期的文件。

于 2015-03-16T19:53:31.277 回答
2

我使用免费的文件搜索程序Everything,在我的 C: 驱动器中搜索 *.sql 文件,然后按 Last Modified 排序,然后按我认为它可能最后执行的日期浏览。

它通常会从各个位置调出大量自动恢复文件。而且您不必担心最新版本的 SSMS/VS 在哪里保存此版本的备份文件。

在此处输入图像描述

于 2020-07-22T08:53:42.597 回答
2

对于 SSMS 18(特别是 18.6),我在这里找到了我的备份C:\Windows\SysWOW64\Visual Studio 2017\Backup Files\Solution1

感谢 Matthew Lock 给了我在我的整个机器上搜索的想法!

于 2020-10-14T19:45:25.880 回答
0

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

我最终在系统视图sys.query_store_querysys.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'
于 2021-07-06T15:48:00.767 回答
0

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

  • 打开 SSMS。
  • 在上面写一些查询。
  • 等待一段时间以确保文件被静默保存。
  • 打开任务管理器并终止 SSMS 应用程序。
  • 重新打开 SSMS。应该会提示您打开未保存的工作。
  • 打开建议的文件并将鼠标悬停在文件选项卡上以查看其位置。
于 2021-10-01T06:08:44.963 回答