Pulihkan skrip kueri SQL yang belum disimpan

196

Bagaimana memulihkan skrip yang belum disimpan jika SSMS crash / tab yang tidak disimpan ditutup secara tidak sengaja?

Kumbang
sumber
3
Saya setuju dengan John pada prinsipnya; Namun, ini terjadi dari waktu ke waktu kepada kita semua: "Saya pikir saya menyelamatkan itu!" Biasakan untuk SIMPAN PERTAMA sebelum Anda mulai membuat kode. Ctrl + S adalah teman Anda!
Graeme
4
Coba SSMSBOOST (mode komunitas gratis), atau Redgate (tidak gratis, tetapi sangat berguna)
Vasily Ivoyzha
2
Sayangnya SSMS saat ini tidak memiliki fitur Undo Closed Tab. Saya telah membuat Item Sambung berikut ini sehingga Microsoft semoga akan menambahkan ini dalam versi mendatang: connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

Jawaban:

425

Posting ini jika seseorang tersandung masalah yang sama.

Dicari Google untuk Mengambil Skrip yang belum disimpan dan menemukan solusinya.

Jalankan selectskrip berikut . Ini menyediakan daftar skrip dan waktu pelaksanaannya dalam 24 jam terakhir. Ini akan sangat membantu untuk mengambil skrip, jika kita menutup jendela kueri di studio manajemen SQL Server tanpa menyimpan skrip. Ini berfungsi untuk semua skrip yang dieksekusi tidak hanya tampilan atau prosedur.

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
Kumbang
sumber
27
Itu jelas merupakan cara luar biasa untuk menemukan kueri Anda, tetapi itu hanya akan menyimpan informasi selama kueri tetap dalam cache rencana (atau sampai SQL Server dimulai ulang, mana yang lebih dulu). Anda harus tetap terbiasa menyelamatkan pekerjaan Anda.
Matt
5
Mungkin perlu dicatat bahwa Anda harus memiliki izin LIHAT SERVER NEGARA untuk menjalankan kueri ini
BornToCode
4
Jika Anda menjalankan kueri ini pada database yang memiliki banyak kueri yang menentangnya, saya sarankan menambahkan kondisi filter adalah klausa di mana seperti di mana execsql.text seperti '% Beberapa bagian dari skrip Anda untuk mencari berdasarkan%'
Jeff Fol
3
Terima kasih atas pertanyaannya, ini menghemat banyak waktu ketika saya secara tidak sengaja menutup tab yang salah. Karena ada banyak eksekusi sampah (alias barang yang tidak Anda inginkan), bolehkah saya menawarkan sedikit tambahan untuk memfilter kelebihan barang dengan membuang semuanya ke tabel temp dan kemudian membacanya, difilter?
Sava Glodic
3
ini berfungsi sempurna untuk saya, saya telah mengembangkan naskah itu sepanjang pagi kemudian saya menutup jendela tanpa menyimpannya dan mulai menangis.
RobsionKarls
167

Anda mungkin dapat menemukannya di salah satu lokasi ini (tergantung pada versi Windows yang Anda gunakan).

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

ATAU

%USERPROFILE%\AppData\Local\Temp

Dicari dari sumber ini dan sumber ini.

Mat
sumber
2
Versi Windows yang sedang saya kerjakan adalah Windows 7. Tidak ada file di lokasi ini. Ini kosong. di bawah AppData \ Local \ Temp file permintaan Microsoft SQL Server adalah o kb.
BumbleBee
2
Ini hebat - menyelamatkan saya beberapa jam kerja setelah sistem crash! Menemukan file diBackup Files\Solution1
Kevin Pope
4
Kalau saja saya bisa memilih-up jawaban ini untuk jumlah jam yang saya simpan tidak harus menulis ulang kueri yang hilang.
ctorx
1
mencoba mencari di folder temp .. file seperti ~ vsA497.sql ada tetapi ukuran masing-masing adalah 0kb, bahkan setelah membuka saya tidak mendapatkan garis yang tertulis dalam file. Di folder cadangan tidak ada file.
Tandai
1
C: \ Users \ YourUserName \ AppData \ Local \ Temp memulihkan apa yang saya hilang. File hilang 5 menit yang lalu, Windows 10, SQL Server Management Studio 17.
dmoney
52

Sedikit terlambat ke pesta, tetapi tidak ada lokasi yang disebutkan sebelumnya bekerja untuk saya - untuk beberapa alasan file cadangan / pemulihan otomatis disimpan di bawah folder VS15 pada PC saya (ini untuk SQL Server 2016 Management Studio)

C: \ Users \ YOURUSERNAME \ Documents \ Visual Studio 2015 \ Backup File \ Solution1

Anda mungkin ingin memeriksa Tools-Options-Environment-Import and Export Settings, lokasi file pengaturan dapat mengarahkan Anda ke folder cadangan Anda - Saya tidak akan pernah melihat di bawah folder VS15 untuk ini.

DonQ
sumber
7
Ini benar untuk SSMS 2017, sebagai gantinya saya menemukan file saya yang hilang di folder VS15 ini
irgnosis
1
Periksa folder ini; punyaku bersembunyi di sini juga.
Radderz
1
TERIMA KASIH TERIMA KASIH TERIMA KASIH!!!! Apakah skrip yang cukup besar hilang karena crash yang tak terduga, dan ini adalah folder yang akhirnya akan !!!
Unfallener
1
Terima kasih - saya tidak dapat menemukan skrip saya di mana pun!
keithm
2
Anda harus mendapatkan lencana pahlawan untuk yang ini
Joe Schmucker
32

Gunakan lokasi berikut di mana Anda dapat menemukan semua ~AutoRecover.~vs*.sql( file pemulihan otomatis ):

C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
Mandar
sumber
4
"folder ini kosong"
adolf bawang putih
Ini yang tidak bisa saya ingat. Saya tidak membatasi itu ke folder yang diposting dan menemukan apa yang saya kehilangan karena kematian SSMS.
Jeff Moden
1
Atau Anda dapat mencoba: C: \ Users \ YourUserName \ My Documents \ SQL Server Management Studio \ File Cadangan \ Solution1
Mandar
11

Mungkin Anda tidak menemukan direktori yang disarankan atau file pemulihan Anda tidak ada, terima kasih Tuhan saya mereplikasi crash dengan skrip yang belum disimpan dan membawa saya ke direktori ini:

C: \ Users \ user \ OneDrive \ Documents \ Visual Studio 2015 \ Backup File \ Solution1

Jadi, mungkin ini menghemat hari Anda :)

frapeti
sumber
9

Saya tahu ini adalah utas lama tetapi bagi siapa pun yang ingin mengambil skrip setelah ssms macet lakukan hal berikut

  1. Buka Disk Lokal (C):
  2. Buka Folder pengguna
  3. Temukan folder yang relevan untuk nama pengguna Anda dan buka
  4. Klik file Dokumen
  5. Klik folder Visual Studio atau klik Folder File Cadangan jika terlihat
  6. Klik Folder File Cadangan
  7. Buka Folder Solution1
  8. File sementara yang dipulihkan akan ada di sini. File akan diakhiri dengan vs diikuti oleh angka seperti vs9E61
  9. Buka file dan periksa kode Anda yang hilang. Semoga itu bisa membantu. Langkah-langkah tepat itu baru saja bekerja untuk saya. Saya menggunakan Sql server Express 2017
frustrasi dikalahkan
sumber
7

Saya menggunakan Windows 8 dan menemukan skrip yang hilang di jalur di bawah ini:

C:\Users\YourUsername\Documents\SQL Server Management Studio\Backup Files
M PRATAP
sumber
7

Buka SSMS >> Alat >> Opsi >> Lingkungan >> AutoRecover

Ada dua pengaturan yang berbeda:

1) Simpan Informasi AutoRecover Setiap Menit

Opsi ini akan menyimpan file SQL Query pada interval tertentu. Setel opsi ini ke nilai minimum yang mungkin untuk menghindari kerugian. Jika Anda telah menetapkan nilai ini ke 5, dalam kasus terburuk, Anda bisa kehilangan 5 menit terakhir pekerjaan.

2) Simpan Informasi AutoRecover selama berhari-hari

Opsi ini akan menyimpan informasi Pemulihan Otomatis untuk hari yang ditentukan. Padahal, saya sarankan dalam kasus kecelakaan buka SQL Server Management Studio segera dan pulihkan file Anda. Jangan menunda tugas penting ini untuk tanggal mendatang.

noobjet
sumber
11
Penginstalan otomatis perusahaan memulai ulang mesin saya saat saya tidak ada - ini akan memaksa menutup semua aplikasi. Ada tab yang terbuka, ada yang disimpan, ada yang tidak. Saya memilih kedua opsi ini dan tidak ada opsi pemulihan atau dokumen 'temp' di lokasi lain yang dinyatakan oleh responden lain
adolf garlic
Saya memiliki kedua opsi tetapi tidak ada yang pulih setelah SSMS gagal.
Kate
6

SSMSBoost add-in (saat ini gratis)

  • terus melacak semua pernyataan yang dieksekusi (menyimpannya lakukan disk)
  • regulary menyimpan snapshot dari isi SQL Editor. Anda menyimpan riwayat modifikasi skrip Anda. Kadang-kadang versi "yang terbaik" bukan yang terakhir dan Anda ingin mengembalikan negara perantara.
  • melacak tab yang dibuka dan memungkinkan untuk mengembalikannya setelah restart. Tab yang tidak disimpan juga dikembalikan.

+ Banyak fitur lainnya. (Saya adalah pengembang add-in)

Andrei Rantsevich
sumber
1
Ngomong-ngomong, ini adalah tambahan yang luar biasa. Ini baru saja menyelamatkan saya dari dua jam kerja yang saya pikir telah saya selamatkan, tetapi belum. (Saya tidak memiliki afiliasi dengan Andrei)
Jonathan
Seandainya aku bisa memilih lebih banyak. SSMSBoost telah "menyelamatkan bacon saya" lebih dari sekali.
Andrew Steitz
4

Anda dapat menemukan file di sini, ketika Anda menutup jendela SSMS secara tidak sengaja

C:\Windows\System32\SQL Server Management Studio\Backup Files\Solution1
Naveen
sumber
OS Windows 8.1?
Kiquenet
4

Saya dapat memulihkan file saya dari lokasi berikut:

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

Seharusnya ada file pemulihan yang berbeda per tab. Saya akan mengatakan mencari file untuk tanggal Anda kehilangan mereka.

NonProgrammer
sumber