Восстановление несохраненных сценариев SQL-запросов

197

Как восстановить несохраненные сценарии, если вкладка сбоя / несохранения SSMS случайно закрывается?

BumbleBee
источник
3
Я согласен с Джоном в принципе; однако время от времени это случается со всеми нами: «Я думал, что спас это!» Сделайте привычкой СОХРАНИТЬ ПЕРВЫЙ, прежде чем начинать кодировать. Ctrl + S твой друг!
Грэм
4
Попробуйте SSMSBOOST (режим бесплатного сообщества) или Redgate (не бесплатно, но очень полезно)
Василий Ивойжа
2
К сожалению, SSMS в настоящее время не имеет функции отмены закрытой вкладки. Я создал следующий элемент подключения, поэтому мы надеемся, что Microsoft добавит его в будущей версии: connect.microsoft.com/SQLServer/Feedback/Details/1044403
Роб Николсон

Ответы:

425

Размещать это в случае, если кто-то сталкивается с той же проблемой.

Погуглил для получения несохраненных скриптов и нашел решение.

Запустите следующий 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
BumbleBee
источник
27
Это определенно нестандартный способ поиска ваших запросов, но он будет хранить информацию только до тех пор, пока запрос остается в кэше плана (или до тех пор, пока SQL Server не будет перезапущен, в зависимости от того, что произойдет раньше). Вы все еще должны привыкнуть сохранять свою работу.
Мэтт
5
Возможно, стоит отметить, что для выполнения этого запроса у вас должно быть разрешение VIEW SERVER STATE
BornToCode
4
Если вы выполняете этот запрос в базе данных, в которой выполняется много запросов, я бы порекомендовал добавить условие фильтра, например, где execsql.text, например "% Некоторая часть вашего скрипта для поиска по%"
Джефф Фоль
3
Спасибо за запрос, это сэкономило мне много времени, когда я случайно закрыл не ту вкладку. Поскольку существует множество нежелательных исполнений (то есть ненужных вещей), могу ли я предложить небольшое добавление отфильтровывать лишние вещи, выгружая их во временную таблицу и затем читая их, отфильтрованные?
Сава Глодич
3
эта работа идеально подходит для меня, я разрабатывал этот сценарий все утро, затем закрыл окно, не сохранив его, и заплакал.
RobsionKarls
167

Вы можете найти их в одном из этих мест (в зависимости от используемой версии 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

ИЛИ

%USERPROFILE%\AppData\Local\Temp

Погуглил из этого источника и из этого источника.

Matt
источник
2
Версия Windows, над которой я работаю, - Windows 7. В этом месте нет файлов. Оно пустое. в AppData \ Local \ Temp файлы запросов Microsoft SQL Server находятся в kb.
BumbleBee
2
Это здорово - сэкономил мне пару часов работы после сбоя системы! Нашел файлы вBackup Files\Solution1
Кевин Поуп
4
Если бы я только мог проголосовать за этот ответ за то количество часов, которое я сэкономил, без необходимости переписывать потерянный запрос.
ctorx
1
попытался посмотреть во временную папку .. файлы типа ~ vsA497.sql существуют, но размер каждого равен 0 КБ, даже после открытия я не получаю ни одной строки, записанной в файле. В папке для резервного копирования нет файла.
Марк
1
C: \ Users \ YourUserName \ AppData \ Local \ Temp восстановил именно то, что я потерял. Файл был потерян 5 минут назад, Windows 10, SQL Server Management Studio 17.
dmoney
53

Немного опоздал на вечеринку, но ни одно из ранее упомянутых мест у меня не сработало - по какой-то причине файлы резервного копирования / автоматического восстановления были сохранены в папке VS15 на моем ПК (это для SQL Server 2016 Management Studio)

C: \ Users \ ИМЯ ВАШЕГО ИМЕНИ \ Документы \ Visual Studio 2015 \ Резервные копии файлов \ Solution1

Возможно, вы захотите проверить свои Инструменты-Параметры-Среда-Импорт и Экспорт настроек, расположение файлов настроек может указывать на вашу резервную папку - я бы никогда не заглянул в папку VS15 для этого.

DonQ
источник
7
Это верно для SSMS 2017. Вместо этого я обнаружил потерянные файлы в этой папке
VS15
1
Проверьте эту папку; мой тоже прятался здесь.
Раддерз
1
СПАСИБО СПАСИБО СПАСИБО!!!! Был довольно большой сценарий, потерянный из-за неожиданного сбоя, и это папка, к которой он в итоге пришел !!!
Развертывание
1
Спасибо - я нигде не смог найти свои сценарии!
Кейтм
2
Вы должны получить значок героя для этого
Джо Шмукер
32

Используйте следующее место, где вы можете найти все ~AutoRecover.~vs*.sql( файлы для автоматического восстановления ):

C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
Mandar
источник
4
«эта папка пуста»
чеснок
Это тот, который я не мог вспомнить. Я не ограничился этой папкой и нашел то, что потерял из-за смерти SSMS.
Джефф Моден
1
Или вы можете попробовать: C: \ Users \ имя_пользователя \ Мои документы \ SQL Server Management Studio \ Backup Files \ Solution1
Mandar
11

Возможно, вы не можете найти предложенные каталоги или ваш файл восстановления отсутствует, слава богу, я воспроизвел сбой с помощью несохраненного сценария и привел меня в этот каталог:

C: \ Users \ пользователь \ OneDrive \ Documents \ Visual Studio 2015 \ Резервные копии файлов \ Solution1

Так что, возможно, это спасет ваш день :)

frapeti
источник
9

Я знаю, что это старый поток, но для тех, кто хочет получить скрипт после сбоев ssms, сделайте следующее

  1. Откройте Локальный диск (C):
  2. Папка открытых пользователей
  3. Найдите папку, соответствующую вашему имени пользователя, и откройте ее
  4. Нажмите файл документов
  5. Щелкните папку Visual Studio или щелкните «Папка файлов резервных копий», если она видна
  6. Нажмите на папку с файлами резервных копий.
  7. Открыть папку Solution1
  8. Любые восстановленные временные файлы будут здесь. Файлы заканчиваются на vs, за которыми следует номер, например vs9E61.
  9. Откройте файлы и проверьте ваш потерянный код. Надеюсь, это поможет. Эти точные шаги только что сработали для меня. я использую SQL Server Express 2017
frustrationmultiplied
источник
7

Я использую Windows 8 и нашел недостающие скрипты по пути ниже:

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files
М ПРАТАП
источник
7

Перейдите в SSMS >> Инструменты >> Параметры >> Среда >> Автообновление

Есть две разные настройки:

1) Сохраняйте информацию для автоматического восстановления каждую минуту

Эта опция сохранит файл SQL-запроса через определенный интервал. Установите эту опцию на минимально возможное значение, чтобы избежать потери. Если вы установили это значение на 5, в худшем случае вы можете потерять последние 5 минут работы.

2) Храните информацию для автоматического восстановления в течение нескольких дней

Эта опция сохранит информацию автоматического восстановления в течение указанных дней. Тем не менее, я предлагаю в случае аварии сразу открыть SQL Server Management Studio и восстановить ваш файл. Не откладывайте эту важную задачу на будущие даты.

noobjet
источник
11
Корпоративная автоматическая установка перезапустила мою машину в мое отсутствие - это принудительно закрыло бы все приложения. Были открыты вкладки, некоторые сохранены, некоторые нет. Я обе эти опции выбраны и нет возможности восстановления , ни «временные» документы в других местах , указанных в других ответчиков
Adolf чеснок
У меня есть оба варианта, но ничего не было восстановлено после сбоя SSMS.
Кейт
6

Надстройка SSMSBoost (в настоящее время бесплатная)

  • отслеживает все выполненные операторы (сохраняет их на диск)
  • регулярно сохраняет снимок содержимого редактора SQL. Вы сохраняете историю изменений вашего скрипта. Иногда «лучшая» версия не является последней, и вы хотите восстановить промежуточное состояние.
  • отслеживает открытые вкладки и позволяет восстановить их после перезагрузки. Несохраненные вкладки также восстанавливаются.

+ тонны других функций. (Я разработчик надстройки)

Андрей Ранцевич
источник
1
Кстати, это чудесное дополнение. Это спасло мне два часа работы, которые, как я думал, я спас, но не спасли. (У меня нет никакой связи с Андреем)
Джонатан
Жаль, что я не мог голосовать больше. SSMSBoost "спас мой бекон" не раз.
Эндрю Стейтц
4

Вы можете найти файлы здесь, когда вы случайно закрыли окно SSMS

C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1
Нэвин
источник
ОС Windows 8.1?
Kiquenet
4

Мне удалось восстановить мои файлы из следующего местоположения:

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

На каждой вкладке должны быть разные файлы восстановления. Я бы сказал, ищите файлы на дату, когда вы их потеряли.

непрограммисту
источник
0

Для SSMS 18 я нашел файлы по адресу:

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

Для SSMS 17 он использовался для:

C:\Users\YourUserName\Documents\Visual Studio 2015\Backup Files\Solution1
Джатин Патель
источник