恢复未保存的SQL查询脚本


196

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


3
我原则上同意约翰。但是,这不时发生在我们所有人身上:“我以为我保存了!” 在开始编码之前,先养成一个习惯。Ctrl + S是您的朋友!
Graeme

4
尝试使用SSMSBOOST(免费社区模式)或Redgate(非免费,但非常有用)
Vasily Ivoyzha 2014年

2
不幸的是,SSMS当前不具有“撤消关闭的选项卡”功能。我创建了以下连接项,因此Microsoft希望在将来的版本中添加它:connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

Answers:


424

如果有人偶然发现相同的问题,请发布此消息。

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

运行以下select脚本。它提供了脚本列表及其在最近24小时内的执行时间。如果我们在不保存脚本的情况下关闭了SQL Server Management Studio中的查询窗口,这将有助于检索脚本。它不仅适用于视图或过程,还适用于所有执行的脚本。

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

27
这绝对是查找查询的一种开箱即用的方法,但是只要查询保留在计划缓存中(或者直到重新启动SQL Server,以先到者为准),它才会保存信息。您仍然应该养成节省工作的习惯。
马特

5
可能值得注意的是,您必须具有“查看服务器状态”权限才能运行此查询
BornToCode 2014年

4
如果您在有许多查询运行的数据库上运行此查询,我建议添加一个过滤条件,如where子句,如where execsql.text,例如“%S脚本的一部分以%进行搜索”
Jeff Fol

3
感谢您的查询,当我不小心关闭了错误的选项卡时,这为我节省了大量时间。既然有很多垃圾执行程序(又是您不想要的东西),我是否可以提供一些额外的功能,将所有多余的内容转储到临时表中,然后读取并过滤,以过滤掉多余的内容?
萨瓦·格洛迪奇

3
这项工作对我来说很完美,整个上午我一直在开发该脚本,然后我不保存就关闭了窗户并开始哭泣。
RobsionKarls

167

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

Windows XP

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

从这个来源这个来源搜寻Google


2
我正在使用的Windows版本是Windows7。此位置没有文件。它是空的。在AppData \ Local \ Temp下,Microsoft SQL Server查询文件为kb。
BumbleBee

2
很棒-在系统崩溃后为我节省了几个小时的工作!在Backup Files\Solution1
Kevin Pope

4
如果我能为这个答案投票最多的时间,则可以节省不必重写丢失的查询的小时数。
ctorx

1
试图在temp文件夹中查找..类似〜vsA497.sql的文件,但每个文件的大小均为0kb,即使打开后我也没有在文件中写任何行。在备份文件夹中没有文件。
2016年

1
C:\ Users \ YourUserName \ AppData \ Local \ Temp完全恢复了我丢失的内容。文件在5分钟前的Windows 10,SQL Server Management Studio 17中
丢失了。– dmoney

52

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

C:\ Users \您的用户名\ Documents \ Visual Studio 2015 \ Backup Files \ Solution1

您可能要检查“工具-选项-环境-导入和导出设置”,设置文件的位置可能会将您指向您的备份文件夹-我永远都不会在VS15文件夹下查找它。


7
这对于SSMS 2017是正确的,我在此VS15文件夹中找到了丢失的文件,而不是
诊断

1
请检查该文件夹;我的也藏在这里。
Radderz

1
谢谢你,谢谢你,谢谢你!!!!有一个很大的脚本丢失了意外崩溃,这是它最终要去的文件夹!!!
Unfallener '18 -4-3

1
谢谢-我在任何地方都找不到我的脚本!
基思姆

2
您应该为此获得一个英雄徽章
Joe Schmucker

32

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

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

4
“此文件夹为空”
阿道夫·大蒜

这是我不记得的那个。我没有将其限制在发布的文件夹中,而是发现了SSMS死后丢失的东西。
杰夫·摩登

1
或者,您也可以尝试:C:\ Users \ YourUserName \ My Documents \ SQL Server Management Studio \ Backup Files \ Solution1
Mandar

11

也许您找不到建议的目录,或者您的恢复文件丢失了,谢谢,天哪,我用一个未保存的脚本复制了崩溃文件,然后将我引导至该目录:

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

因此,也许这可以节省您的时间:)


9

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

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

7

我正在使用Windows 8,并在下面的路径中找到了丢失的脚本:

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files

7

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

有两种不同的设置:

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

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

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

此选项将在指定日期保留自动恢复信息。不过,我建议万一发生意外,请立即打开SQL Server Management Studio并恢复文件。不要为将来的日期拖延这项重要任务。


11
在我不在的情况下,公司自动安装会重新启动我的计算机-这将强制关闭所有应用程序。有打开的选项卡,有的没有保存。我同时选择了这两个选项,并且在其他响应者指定的其他位置也没有恢复选项或“临时”文档
阿道夫·大蒜2016年

我有两种选择,但SSMS失败后什么也没恢复。
凯特

6

SSMSBoost加载项(当前免费)

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

+吨其他功能。(我是该外接程序的开发人员)


1
顺便说一下,这是一个了不起的加载项。它只是为我节省了两个小时的工作,而我以为我已经保存了,但是没有。(我与Andrei没有从属关系)
乔纳森(Jonathan

希望我能投票更多。SSMSBoost不止一次地“保存了我的培根”。
安德鲁·斯蒂兹

4

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

C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1

操作系统Windows 8.1?
Kiquenet '16

4

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.