恢复未保存的SQL查询脚本

Bum*_*Bee 187 sql t-sql sql-server ssms sql-server-2012

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

Bum*_*Bee 398

如果有人遇到同样的问题,请发布此信息.

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

运行以下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
Run Code Online (Sandbox Code Playgroud)

  • 这绝对是一种查找查询的开箱即用方式,但只要查询保留在计划缓存中(或直到SQL Server重新启动,以先到者为准),它才会保留信息.你应该养成保存工作的习惯. (26认同)
  • 值得注意的是,您必须具有VIEW SERVER STATE权限才能运行此查询 (5认同)
  • 如果您在对其运行许多查询的数据库上运行此查询,我建议添加过滤条件是where子句,例如where execsql.text,如'%脚本的一部分要按%搜索' (4认同)
  • 感谢您的查询,当我意外关闭错误的标签时,这为我节省了相当多的时间.由于存在大量垃圾执行(也就是你不想要的东西),我是否可以通过将所有内容全部转储到临时表中然后读取它来过滤掉? (3认同)
  • 这项工作对我来说很完美,我整个早上一直在开发那个剧本,然后关闭窗户而不保存它并开始哭泣. (3认同)
  • 老兄...救了我的培根!我正在处理一个文件,SQL Management studio 崩溃了(Red-Gate 工具的内存问题)。不知何故,文件保存失败或删除了我的文件。使用此查询并收到我一直在处理的查询脚本! (2认同)

Mat*_*att 158

可以在其中一个位置找到它们(具体取决于您使用的Windows版本).

Windows XP

C:\Documents and Settings\YourUsername\My Documents\SQL Server Management Studio\Backup Files\
Run Code Online (Sandbox Code Playgroud)

Windows Vista/7/10

%USERPROFILE%\Documents\SQL Server Management Studio\Backup Files
Run Code Online (Sandbox Code Playgroud)

要么

%USERPROFILE%\AppData\Local\Temp
Run Code Online (Sandbox Code Playgroud)

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

  • 更新 SSMS18 及更高版本...我发现它使用此文件夹:C:\Users\&lt;用户名&gt;\Documents\Visual Studio 2017\Backup Files\Solution1 (5认同)
  • 如果只有我可以在这个答案中投票,我保存的小时数不必重写丢失的查询. (3认同)
  • 我正在使用的Windows版本是Windows7。此位置没有文件。它是空的。在AppData \ Local \ Temp下,Microsoft SQL Server查询文件为kb。 (2认同)
  • 这很棒-在系统崩溃后为我节省了几个小时的工作!在“ Backup Files \ Solution1”中找到文件 (2认同)
  • 尝试在临时文件夹中查找 .. 存在 ~vsA497.sql 之类的文件,但每个文件的大小为 0kb,即使打开后我也没有在文件中写入任何行。在备份文件夹中没有文件。 (2认同)
  • C:\Users\YourUserName\AppData\Local\Temp 完全恢复了我丢失的内容。文件在 5 分钟前丢失,Windows 10,SQL Server Management Studio 17。 (2认同)

小智 42

派对有点晚了,但之前提到的位置都没有为我工作 - 出于某种原因,备份/自动恢复文件保存在我的PC上的VS15文件夹下(这是针对SQL Server 2016 Management Studio)

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

您可能想要检查"工具 - 选项 - 环境 - 导入和导出设置",设置文件的位置可能会指向您的备份文件夹 - 我永远不会在VS15文件夹下查找此内容.

  • 这对于SSMS 2017是正确的,我在这个VS15文件夹中找到了丢失的文件 (6认同)
  • 伙计。哇。我正要放弃,你救了我……很多……我的意思是很多工作。我正在做一个复杂的转换,并且我在这个文件中包含了有关如何移动产品的所有注释。太感谢了。 (2认同)
  • @thecoolmacdude 与 SSMS 2019 相同,也在“Documents\Visual Studio 2017\Backup Files\Solution1”中找到它 (2认同)

Man*_*dar 31

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

C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
Run Code Online (Sandbox Code Playgroud)

  • "这个文件夹是空的" (3认同)

fra*_*eti 10

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

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

所以,也许这可以节省你的一天:)


小智 10

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

C:\Users\YourUserName\Documents\Visual Studio 2017\Backup Files\Solution1
Run Code Online (Sandbox Code Playgroud)

对于 SSMS 17,它曾经位于:

C:\Users\YourUserName\Documents\Visual Studio 2015\Backup Files\Solution1
Run Code Online (Sandbox Code Playgroud)


小智 7

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

有两种不同的设置:

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

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

2) 保留自动恢复信息数天

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

  • 公司自动安装在我不在的情况下重新启动了我的机器 - 这将强制关闭所有应用程序。有标签打开,有些保存了一些没有。我选择了这两个选项,并且在其他响应者所述的其他位置没有恢复选项或“临时”文档 (11认同)

小智 6

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

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files
Run Code Online (Sandbox Code Playgroud)


And*_*ich 6

SSMSBoost加载项(目前免费)

  • 跟踪所有已执行的语句(将它们保存到磁盘中)
  • regulary保存SQL编辑器内容的快照.您可以保留脚本修改的历史记录.有时"最好的"版本不是最后一个,你想要恢复中间状态.
  • 跟踪打开的选项卡,并允许在重新启动后恢复它们.未保存的标签也会恢复.

+吨其他功能.(我是加载项的开发人员)


fru*_*ied 6

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

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