恢复未保存的SQL查询脚本

时间:2013-02-22 23:16:39

标签: sql sql-server tsql sql-server-2012 ssms

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

15 个答案:

答案 0 :(得分:383)

如果有人遇到同样的问题,请发布此邮件。

用Google搜索Retrieve unsaved Scripts并找到解决方案。

运行以下 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

答案 1 :(得分:153)

可能能够在其中一个位置找到它们(具体取决于您使用的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

OR

%USERPROFILE%\AppData\Local\Temp

Googled from this sourcethis source.

答案 2 :(得分:32)

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

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

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

答案 3 :(得分:30)

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

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

答案 4 :(得分:8)

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

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

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

答案 5 :(得分:5)

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

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

答案 6 :(得分:5)

SSMSBoost加载项(目前免费)

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

+吨其他功能。 (我是加载项的开发者)

答案 7 :(得分:3)

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

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

答案 8 :(得分:3)

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

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

每个标签应该有不同的恢复文件。我会说找你失去它们的日期的文件。

答案 9 :(得分:3)

转到SSMS&gt;&gt;工具&gt;&gt;选项&gt;&gt;环境&gt;&gt;自动恢复

有两种不同的设置:

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

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

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

此选项将保留指定日期的自动恢复信息。虽然,我建议在事故的情况下立即打开SQL Server Management Studio并恢复您的文件。不要为将来的日期拖延这项重要任务。

答案 10 :(得分:2)

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

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

答案 11 :(得分:1)

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

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

对于SSMS 17,它曾经位于:

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

答案 12 :(得分:1)

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

通常会从多个位置调出自动恢复文件的负载。您不必担心最新版本的SSMS / VS会将备份文件保存到该版本。

enter image description here

答案 13 :(得分:0)

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

马修·洛克(Matthew Lock)给我一个想法,那就是可以在我的整个机器上搜索!

答案 14 :(得分: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'