Відновлення збережених скриптів запитів SQL


197

Як відновити збережені сценарії, якщо збій / збережена вкладка SSMS випадково закривається?


3
Я погоджуюся з Іваном в принципі; однак, це час від часу трапляється з усіма нами: "Я думав, що це врятував!" Створіть звичку ЗБЕРЕГТИ ПЕРШИМ, перш ніж розпочати кодування. Ctrl + S - твій друг!
Graeme

4
Спробуйте SSMSBOOST (безкоштовний режим спільноти) або Redgate (не безкоштовно, але дуже корисно)
Василь Івойжа

2
На жаль, в даний час SSMS не має функції "Скасувати закриту вкладку". Я створив такий елемент Connect, щоб 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

27
Це, безумовно, зовнішній спосіб пошуку ваших запитів, але він буде зберігати інформацію лише до тих пір, поки запит залишиться в кеш-плані плану (або до перезапуску SQL Server, залежно від того, що відбудеться спочатку). Вам все-таки слід звикнути економити свою роботу.
Метт

5
Варто зауважити, що для запуску цього запиту потрібно мати дозвіл VIEW SERVER STATE
BornToCode

4
Якщо ви запускаєте цей запит у базі даних, у якій працює багато запитів, я рекомендую додати умову фільтра - це пункт, де, наприклад, де execsql.text, наприклад, "% Деяка частина вашого сценарію для пошуку за%"
Jeff Fol

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

Гугл із цього та цього джерела.


2
Версія для Windows, над якою я працюю, - це Windows 7. У цьому місці відсутні файли. Це порожньо. під AppData \ Local \ Temp файли запитів Microsoft SQL Server є o kb.
BumbleBee

2
Це чудово - врятував мені пару годин роботи після аварії системи! Знайдено файли вBackup Files\Solution1
Кевін Папа

4
Якби тільки я міг підкреслити цю відповідь протягом тієї кількості годин, яку я врятував, не потрібно переписувати втрачений запит.
ctorx

1
спробував заглянути в папку temp .. такі файли, як ~ vsA497.sql існують, але розмір кожного становить 0kb, навіть після відкриття я не отримую жодного рядка у файлі. У папці резервного копіювання немає файлу.
Марк

1
C: \ Users \ YourUserName \ AppData \ Local \ Temp відновив саме те, що я втратив. Файл втрачено 5 хвилин тому, Windows 10, SQL Server Management Studio 17.
dmoney

53

Трохи запізнювався на вечірку, але жодне з згаданих раніше місць не працювало для мене - чомусь файли резервного копіювання / автоматичного відновлення були збережені у папці VS15 на моєму ПК (це для SQL Server 2016 Management Studio)

C: \ Користувачі \ YOURUSERNAME \ Документи \ Visual Studio 2015 \ Файли резервного копіювання \ Рішення1

Ви можете перевірити параметри Інструменти-Параметри-Навколишнє середовище-Імпорт та Експорт, розташування файлів налаштувань може вказувати на вашу резервну папку - я б ніколи не заглядав у папку VS15 для цього.


7
Це правильно для SSMS 2017, я знайшов свої загублені файли в цій папці
VS15

1
Перевірте цю папку; тут ховалася і моя.
Раддерз

1
ДЯКУЮ, ДЯКУЄТЕ, ДЯКУЄМО !!!! Якщо несподіваний збій втратив досить великий сценарій, і це ця папка, в якій він закінчився !!!
Unfallener

1
Дякую - я не міг знайти своїх сценаріїв ніде!
кейт

2
Ви повинні отримати знак героя для цього
Джо

32

Скористайтеся таким місцем, де ви можете знайти всі ~AutoRecover.~vs*.sql( файли автоматичного відновлення ):

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

4
"ця папка порожня"
Адольф часник

Це той, якого я не міг згадати. Я не обмежував це розміщеною папкою і виявив те, що втратив у смерті SSMS.
Джефф Моден

1
Або ви можете спробувати: C: \ Users \ YourUserName \ My Documents \ SQL Server Management Studio \ Резервні файли \ Solution1
Mandar

11

Можливо, ви не знайдете запропонованих каталогів або ваш файл відновлення відсутній, слава богу, я повторив збій із збереженим сценарієм і привів мене до цього каталогу:

C: \ Користувачі \ користувач \ OneDrive \ Документи \ Visual Studio 2015 \ Файли резервного копіювання \ Рішення1

Тож, можливо, це заощадить ваш день :)


9

Я знаю, що це стара тема, але для тих, хто хоче отримати скрипт після збоїв ssms, виконайте наступне

  1. Відкрийте локальний диск (C):
  2. Відкрити папку користувачів
  3. Знайдіть папку, релевантну для вашого імені користувача, і відкрийте її
  4. Клацніть файл «Документи»
  5. Клацніть папку Visual Studio або натисніть папку "Резервне копіювання файлів", якщо вона є
  6. Клацніть папку резервних файлів
  7. Відкрити папку Solution1
  8. Будь-які відновлені тимчасові файли будуть тут. Файли закінчуються символом vs з наступним числом, таким як vs9E61
  9. Відкрийте файли і перевірте, чи не загубився код. Сподіваюся, що це допомагає. Ці точні кроки якраз працювали для мене. я використовую сервер Sql Express 2017

7

Я використовую Windows 8 і знайшов відсутні скрипти на шляху нижче:

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

7

Перейдіть до SSMS >> Інструменти >> Параметри >> Навколишнє середовище >> Автовідновлення

Є два різні налаштування:

1) Зберігайте інформацію про автоматичне відновлення кожні хвилини

Ця опція збереже файл запиту SQL через певний проміжок часу. Встановіть для цього параметр мінімальне значення, щоб уникнути втрат. Якщо ви встановили це значення на 5, в гіршому випадку ви можете втратити останні 5 хвилин роботи.

2) Зберігайте інформацію про автоматичне відновлення протягом днів

Ця опція збереже інформацію про автоматичне відновлення протягом визначених днів. Хоча я пропоную в разі нещасного випадку негайно відкрити SQL Server Management Studio і відновити файл. Не відкладайте це важливе завдання на майбутні дати.


11
Корпоративна автоматична установка перезапустила мою машину за моєї відсутності - це змусило б закрити всі програми. Були відкриті вкладки, деякі зберегли, не деякі. У мене обираються обидва ці варіанти, і немає варіантів відновлення, а також «тимчасових» документів в інших місцях, зазначених іншими респондентами
adolf часник

У мене є обидва варіанти, але нічого не відновлено після відмови SSMS.
Кейт

6

Додаток SSMSBoost (наразі безкоштовний)

  • стежить за всіма виконаними операторами (зберігає їх на диску)
  • регулярно зберігає знімок вмісту редактора SQL. Ви зберігаєте історію модифікацій вашого сценарію. Іноді "найкраща" версія не остання, і ви хочете відновити проміжний стан.
  • відслідковує відкриті вкладки та дозволяє відновити їх після перезавантаження. Не збережені вкладки також відновлюються.

+ тонн інших функцій. (Я розробник надбудови)


1
Це, до речі, дивовижна надбудова. Щойно врятувало мене дві години роботи, які я думав, що врятував, але не зробив. (Я не маю приналежності до Андрія)
Джонатан

Бажаю, щоб я міг проголосувати більше. SSMSBoost не один раз "врятував моє бекон".
Ендрю Штайц

4

Ви можете знайти файли тут, коли ви випадково закрили вікно SSMS

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

ОС Windows 8.1?
Кікенет

4

Мені вдалося відновити свої файли з наступного місця:

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

На вкладці повинні бути різні файли відновлення. Я б сказав, шукайте файли на дату, коли ви їх втратили.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.