Kaydedilmemiş SQL sorgu komut dosyalarını kurtarma


197

SSMS kilitleniyorsa / kaydedilmemiş sekmesi yanlışlıkla kapatılırsa kaydedilmemiş komut dosyaları nasıl kurtarılır?


3
Ben prensipte John'a katılıyorum; ancak bu zaman zaman hepimize olur: "Bunu kurtardığımı sanıyordum!" Kodlamaya başlamadan önce İLK KAYDETmeyi alışkanlık haline getirin. Ctrl + S senin arkadaşın!
Graeme

4
SSMSBOOST'u (ücretsiz topluluk modu) veya Redgate'i (ücretsiz değil, ama çok yararlı)
deneyin

2
Ne yazık ki SSMS şu anda Kapalı Sekmeyi Geri Al özelliğine sahip değil. Microsoft'un bunu gelecekteki bir sürümde ekleyeceği için aşağıdaki Connect Öğesini oluşturdum: connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

Yanıtlar:


425

Birisi aynı problemle karşılaşırsa bunu yayınlamak.

Kaydedilmemiş Komut Dosyalarını Al için Googled ve bir çözüm buldu.

Aşağıdaki selectkomut dosyasını çalıştırın . Komut dosyalarının bir listesini ve son 24 saatteki yürütme zamanını sağlar. Komut dosyasını kaydetmeden SQL Server yönetim stüdyosundaki sorgu penceremizi kapatırsak, komut dosyalarını almak yararlı olacaktır. Yalnızca bir görünüm veya yordam için değil, yürütülen tüm komut dosyaları için çalışır.

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
Bu kesinlikle sorgularınızı bulmanın kutu dışında bir yoludur, ancak sorgu yalnızca plan önbelleğinde kaldığı sürece (veya hangisi önce gelirse SQL Server yeniden başlatılana kadar) bilgi tutacaktır. Hala çalışmanızı kaydetme alışkanlığı edinmelisiniz.
Matt

5
Bu sorguyu çalıştırmak için GÖRÜNÜM SUNUCU DEVLET iznine sahip olmanız gerekir
BornToCode

4
Bu sorguyu, üzerinde çalışan birçok sorgu içeren bir veritabanında çalıştırıyorsanız, bir filtre koşulu eklemenizi öneririm, burada execsql.text gibi '% komut dosyanızın bir kısmı%' ye göre arama 'gibi bir cümle
Jeff Fol

3
Sorgu için teşekkürler, bu yanlışlıkla yanlış sekmeyi kapattığımda bana önemli miktarda zaman kazandırdı. Çok sayıda gereksiz yürütme (aka istemediğiniz şeyler) olduğundan, hepsini geçici bir tabloya döküp sonra filtreleyerek fazla şeyleri filtrelemek için küçük bir ek sunabilir miyim?
Sava Glodic

3
Bu iş benim için mükemmel, ben bütün sabah bu komut dosyasını geliştiriyor ve sonra kaydetmeden pencereyi kapattım ve ağlamaya başladım.
RobsionKarls

167

Sen olabilir bu konumlardan (kullandığınız Windows sürümüne bağlı olarak) biriyle yeniden bulmak mümkün.

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

VEYA

%USERPROFILE%\AppData\Local\Temp

Bu kaynaktan ve bu kaynaktan googled .


2
Üzerinde çalıştığım Windows sürümü Windows 7'dir. Bu konumda dosya yok. Bu boş. AppData \ Local \ Temp altında Microsoft SQL Server sorgu dosyaları o kb'dir.
BumbleBee

2
Bu harika - bir sistem çökmesinden sonra birkaç saat işten tasarruf ettim! Dosyaları bulunduBackup Files\Solution1
Kevin Pope

4
Kayıp bir sorguyu yeniden yazmak zorunda kalmadan kaydettiğim saat sayısı boyunca bu cevabı oylayabilseydim.
ctorx

1
temp klasörüne bakmaya çalıştım .. ~ vsA497.sql gibi dosyalar var ama her birinin boyutu 0kb, açtıktan sonra bile dosyada yazılı bir satır almıyorum. Yedekleme klasöründe dosya yok.
Mark

1
C: \ Users \ KullanıcıAdınız \ AppData \ Local \ Temp tam olarak kaybettiğim şeyi kurtardı. Dosya 5 dakika önce kayboldu, Windows 10, SQL Server Management Studio 17.
dmoney

53

Partiye biraz geç, ancak daha önce belirtilen konumlardan hiçbiri benim için çalışmadı - bir nedenden dolayı yedekleme / otomatik yeniden bulma dosyaları bilgisayarımdaki VS15 klasörü altına kaydedildi (bu SQL Server 2016 Management Studio için)

C: \ Kullanıcılar \ SİZİN ADI \ Belgeler \ Visual Studio 2015 \ Yedek Dosyaları \ Çözüm1

Araçlar-Seçenekler-Çevre-Alma ve Verme Ayarlarınızı kontrol etmek isteyebilirsiniz, ayar dosyalarının konumu sizi yedekleme klasörünüze yönlendirebilir - bunun için VS15 klasörünün altına hiç bakmazdım.


7
Bu SSMS 2017 için doğrudur, kayıp dosyalarımı bu VS15 klasöründe
buldum

1
Bu klasörü kontrol edin; benim de burada saklanıyordum.
Radderz

1
TEŞEKKÜRLER TEŞEKKÜRLER TEŞEKKÜRLER!!!! Beklenmedik bir çökme için oldukça büyük bir senaryo kaybetti ve bu gidiş olacak klasörü !!!
Unfallener

1
Teşekkür ederim - Senaryolarımı hiçbir yerde bulamadım!
keithm

2
Bunun için bir kahraman rozeti almalısın
Joe Schmucker

32

Tümünü bulabileceğiniz aşağıdaki konumu kullanın ~AutoRecover.~vs*.sql(otomatik bulma dosyaları ):

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

4
"bu klasör boş"
adolf garlic

Bu hatırlayamadığım bir şey. Bunu gönderilen klasörle sınırlandırmadım ve bir SSMS ölümüne ne kaybettiğimi buldum.
Jeff Moden

1
Ya da deneyebilirsiniz: C: \ Users \ KullanıcıAdınız \ Belgelerim \ SQL Server Management Studio \ Yedek Dosyaları \
Çözüm1

11

Belki önerilen dizinleri bulamıyorsunuz veya kurtarma dosyanız eksik, Tanrıya şükür kazayı kaydedilmemiş bir komut dosyasıyla çoğalttım ve beni bu dizine yönlendirin:

C: \ Kullanıcılar \ kullanıcı \ OneDrive \ Belgeler \ Visual Studio 2015 \ Yedek Dosyaları \ Çözüm1

Yani, belki bu gününüzü kurtarır :)


9

Bu eski bir iş parçacığı olduğunu biliyorum ama ssms çöktükten sonra bir komut dosyası almak isteyen herkes için aşağıdakileri yapın

  1. Yerel Diski Aç (C):
  2. Kullanıcılar klasörünü aç
  3. Kullanıcı adınızla ilgili klasörü bulun ve açın
  4. Belgeler dosyasını tıklayın
  5. Visual Studio klasörünü veya görünürse Yedek Dosyaları Klasörü'nü tıklatın.
  6. Yedek Dosyaları Klasörünü tıklayın
  7. Solution1 Klasörünü Aç
  8. Kurtarılan tüm geçici dosyalar burada olacaktır. Dosyalar, vs ile bitecek ve ardından vs9E61 gibi bir sayı gelecektir.
  9. Dosyaları açın ve kayıp kodunuzu kontrol edin. Umarım yardımcı olur. Bu tam adımlar benim için çalıştı. im Sql server Express 2017 kullanarak

7

Windows 8 kullanıyorum ve aşağıdaki yoldaki eksik komut dosyalarını buldum:

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

7

SSMS >> Araçlar >> Seçenekler >> Çevre >> Otomatik Kurtarma'ya gidin

İki farklı ayar vardır:

1) Otomatik Kurtarma Bilgilerini Her Dakika Kaydet

Bu seçenek SQL Sorgu dosyasını belirli aralıklarla kaydeder. Kaybı önlemek için bu seçeneği mümkün olan minimum değere ayarlayın. Bu değeri 5 olarak ayarladıysanız, en kötü durumda, çalışmanın son 5 dakikasını kaybedebilirsiniz.

2) Otomatik Kurtarma Bilgilerini Günlerce Tutun

Bu seçenek, Otomatik Kurtarma bilgilerini belirtilen günler boyunca korur. Yine de, kaza durumunda SQL Server Management Studio'yu hemen açın ve dosyanızı kurtarın. Bu önemli görevi gelecek tarihler için ertelemeyin.


11
Kurumsal bir otomatik yükleme, yokluğumda makinemi yeniden başlattı - bu, tüm uygulamaları kapatmaya zorlayacaktı. Açık sekmeler vardı, bazıları kaydedilmedi. Bu seçeneklerin her ikisini de seçtim ve diğer yanıt verenler tarafından belirtilen başka yerlerde kurtarma seçeneği veya 'geçici' belge yok
adolf garlic

Her iki seçeneğim de var ama SSMS başarısız olduktan sonra hiçbir şey kurtarılmadı.
Kate

6

SSMSBoost eklentisi (şu anda ücretsiz)

  • çalıştırılan tüm ifadeleri izler (diske kaydeder)
  • düzenli olarak SQL Editör içeriğinin anlık görüntüsünü kaydeder. Senaryonuzdaki değişikliklerin geçmişini saklıyorsunuz. Bazen "en iyi" sürüm son değildir ve ara durumu geri yüklemek istersiniz.
  • açılan sekmeleri izler ve yeniden başlattıktan sonra bunları geri yüklemenizi sağlar. Kaydedilmemiş sekmeler de geri yüklenir.

+ ton diğer özellikler. (Eklentinin geliştiricisiyim)


1
Bu arada, muhteşem bir eklenti. Sadece kurtardığımı düşündüğüm iki saat çalışmayı kurtardı, ama yapmadı. (Andrei ile hiçbir ilişkim yok)
Jonathan

Keşke daha fazla oy verebilseydim. SSMSBoost, pastırmamı bir kereden fazla "kurtardı".
Andrew Steitz

4

SSMS penceresini yanlışlıkla kapattığınızda dosyaları burada bulabilirsiniz

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

İşletim Sistemi Windows 8.1?
Kiquenet

4

Dosyalarımı aşağıdaki konumdan kurtarabildim:

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

Sekme başına farklı kurtarma dosyaları olmalıdır. Dosyaları kaybettiğiniz tarih için arayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.