如果SSMS崩溃/未保存选项卡意外关闭,如何恢复未保存的脚本?
当前回答
我使用的是Windows 8,在下面的路径中发现了缺失的脚本:
C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files
其他回答
上面的选项都没有帮助我恢复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'
如果你碰巧有SSMS的RedGate工具,那么他们有一个非常有用的工具叫做标签历史,它会显示你所有打开和关闭的标签(甚至脚本,你写和关闭没有执行)。
在Toolkit工具栏上应该有一个按钮,看起来像这样,它会打开一个包含所有脚本列表的窗口(它也有一个搜索功能,所以你可以搜索你的脚本):
我知道这与大多数人无关,但它可能会帮助那些失去工作的人……
把这个贴出来以防有人遇到同样的问题。
谷歌检索未保存的脚本,并找到了一个解决方案。
运行下面的选择脚本。它提供了一个脚本列表及其在过去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\<yourusername>\Documents\SQL Server Management Studio\Backup Files\Solution1
每个选项卡应该有不同的恢复文件。我建议你找找你丢失文件的日期。
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 如何从命令行通过mysql运行一个查询?
- 如何从SQL Server Management Studio的历史记录中删除“服务器名称”项
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?