如果SSMS崩溃/未保存选项卡意外关闭,如何恢复未保存的脚本?
当前回答
把这个贴出来以防有人遇到同样的问题。
谷歌检索未保存的脚本,并找到了一个解决方案。
运行下面的选择脚本。它提供了一个脚本列表及其在过去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
其他回答
我使用免费的文件搜索程序Everything,搜索*。sql文件在我的C:驱动器,然后排序最后修改,然后浏览日期,我认为可能是最后执行。
它通常会从不同的位置调出大量的自动恢复文件。并且您不必担心最新版本的SSMS/VS将备份文件保存在该版本的哪里。
我能够从以下位置恢复我的文件:
C:\Users\<yourusername>\Documents\SQL Server Management Studio\Backup Files\Solution1
每个选项卡应该有不同的恢复文件。我建议你找找你丢失文件的日期。
上面的选项都没有帮助我恢复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'
使用下面的位置可以找到所有的~AutoRecover.~vs . *。SQL(自动恢复文件):
C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
进入SSMS >> Tools >> Options >> Environment >> AutoRecover
有两种不同的设置:
1)每分钟保存一次自动恢复信息
该选项将在特定时间间隔保存SQL查询文件。将此选项设置为最小值以避免损失。如果您将这个值设置为5,在最坏的情况下,您可能会失去最后5分钟的工作。
2)保留自动恢复信息几天
此选项将自动恢复信息保留指定天数。不过,我建议万一发生意外,立即打开SQL Server Management Studio并恢复您的文件。不要把这项重要的任务拖到以后再做。
推荐文章
- 如何在SQL中选择表的最后一条记录?
- SQL在Oracle中连接多行列值的查询
- 修改列,添加默认约束
- 在单个查询中计算空值和非空值
- 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
- SQL to LINQ工具
- 如何从一个查询插入多行使用雄辩/流利
- 如何连接列在Postgres选择?
- 有人可以对SQL查询进行版权保护吗?
- 如何知道MySQL表最近一次更新?
- 如何转储一些SQLite3表的数据?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 在SQL中更新多个列