如果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
其他回答
有点晚了,但之前提到的位置都不适合我-出于某种原因,备份/自动恢复文件保存在我PC上的VS15文件夹下(这是用于SQL Server 2016 Management Studio)
C:\Users\YOURUSERNAME\Documents\Visual Studio [version]\Backup Files\Solution1
ex:
C:\Users\YOURUSERNAME\Documents\Visual Studio 2015\Backup Files\Solution1
你可能想要检查你的工具-选项-环境-导入和导出设置,设置文件的位置可以指向你的备份文件夹-我永远不会在VS15文件夹下寻找这个。
当您不小心关闭SSMS窗口时,您可以在这里找到文件
C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1
对于SSMS 18(特别是18.6),我在这里找到了我的备份C:\Windows\SysWOW64\Visual Studio 2017\备份文件\解决方案1。
向Matthew Lock致敬,他给了我在整个机器上搜索的想法!
使用下面的位置可以找到所有的~AutoRecover.~vs . *。SQL(自动恢复文件):
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'
推荐文章
- SQL Server数据库备份恢复到低版本
- 在MySQL中检测值是否为number
- MySQL中两个日期之间的差异
- SQL Server:过滤sp_who2的输出
- 使用SQL查询查找最近的纬度/经度
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- Sql Server字符串到日期的转换
- 将一列的多个结果行连接为一列,按另一列分组
- 检查MySQL表是否存在而不使用“select from”语法?
- 如何将SQL Azure数据库复制到本地开发服务器?
- SQL Server 2008不能用新创建的用户登录
- 在PostgreSQL中快速发现表的行数
- 更改varchar列的大小为较低的长度
- 从表中选择1是什么意思?