Recuperar scripts de consulta SQL não salvos

196

Como recuperar os scripts não salvos se o SSMS travar / a guia não salva for fechada acidentalmente?

BumbleBee
fonte
3
Eu concordo com John em princípio; no entanto, isso acontece de tempos em tempos para todos nós: "Eu pensei que tinha salvado isso!" Crie o hábito de SALVAR PRIMEIRO antes de começar a codificar. Ctrl + S é seu amigo!
Graeme
4
Tente SSMSBOOST (modo de comunidade livre), ou Redgate (não é livre, mas muito útil)
Vasily Ivoyzha
2
Infelizmente, o SSMS atualmente não possui o recurso Desfazer guia fechada. Eu criei o seguinte Ligue item para Microsoft venha a adicionar este em uma versão futura: connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

Respostas:

425

Postando isso no caso de alguém tropeçar no mesmo problema.

Pesquisou no Google por recuperar scripts não salvos e encontrou uma solução.

Execute o seguinte selectscript. Ele fornece uma lista de scripts e seu tempo de execução nas últimas 24 horas. Isso será útil para recuperar os scripts, se fecharmos nossa janela de consulta no SQL Server Management Studio sem salvar o script. Ele funciona para todos os scripts executados, não apenas para uma visualização ou procedimento.

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
fonte
27
Essa é definitivamente uma maneira imediata de encontrar suas consultas, mas ela retém informações apenas enquanto a consulta permanecer no cache do plano (ou até que o SQL Server seja reiniciado, o que ocorrer primeiro). Você ainda deve adquirir o hábito de salvar seu trabalho.
Matt
5
Pode notar que você deve ter permissão VIEW SERVER STATE, a fim de executar essa consulta
BornToCode
4
Se você estiver executando esta consulta em um banco de dados com muitas consultas em execução, recomendo adicionar uma condição de filtro à cláusula where, como where execsql.text como '% Alguma parte do seu script para pesquisar por%'
Jeff Fol
3
Obrigado pela consulta, isso me salvou uma quantidade considerável de tempo quando fechei acidentalmente a guia errada. Como há muitas execuções indesejadas (também conhecidas como coisas que você não deseja), posso oferecer uma pequena adição ao filtrar o excesso de coisas, despejando tudo em uma tabela temporária e lendo isso, filtrado?
Sava Glodic
3
esse trabalho perfeito para mim, eu desenvolvi esse script a manhã inteira, depois fechei a janela sem salvá-lo e comecei a chorar.
precisa saber é o seguinte
167

Você pode encontrá-los em um desses locais (dependendo da versão do Windows que você está usando).

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

OU

%USERPROFILE%\AppData\Local\Temp

Pesquisados ​​a partir desta fonte e desta fonte.

Matt
fonte
2
A versão do Windows em que estou trabalhando é o Windows 7. Não há arquivos neste local. Está vazio. em AppData \ Local \ Temp, os arquivos de consulta do Microsoft SQL Server estão em kb.
BumbleBee
2
Isso é ótimo - economizei algumas horas de trabalho após uma falha no sistema! Encontrado os arquivosBackup Files\Solution1
Kevin Pope
4
Se eu pudesse votar novamente nesta resposta pelo número de horas que economizei, não teria que reescrever uma consulta perdida.
precisa saber é
1
tentei procurar na pasta temporária .. arquivos como ~ vsA497.sql existem, mas o tamanho de cada um é 0kb, mesmo após a abertura, não recebo nenhuma linha escrita no arquivo. Na pasta de backup não há arquivo.
Mark
1
C: \ Users \ YourUserName \ AppData \ Local \ Temp recuperou exatamente o que perdi. O arquivo foi perdido há 5 minutos, Windows 10, SQL Server Management Studio 17.
dmoney
52

Um pouco atrasado para a festa, mas nenhum dos locais mencionados anteriormente funcionou para mim - por algum motivo, os arquivos de backup / recuperação automática foram salvos na pasta VS15 no meu PC (isso é para o SQL Server 2016 Management Studio)

C: \ Users \ YOURUSERNAME \ Documents \ Visual Studio 2015 \ Arquivos de backup \ Solution1

Convém verificar as configurações de Ferramentas-Opções-Ambiente-Importar e exportar configurações, o local dos arquivos de configurações pode apontar para sua pasta de backup - eu nunca teria procurado isso na pasta VS15.

DonQ
fonte
7
Isso está correto para o SSMS 2017, encontrei meus arquivos perdidos nessa pasta
VS15
1
Verifique esta pasta; o meu estava escondido aqui também.
Radderz
1
OBRIGADO, OBRIGADO, OBRIGADO!!!! Tinha um script muito grande perdido para uma falha inesperada, e esta é a pasta para a qual ele acabou indo !!!
Unfallener
1
Obrigado - não consegui encontrar meus scripts em lugar nenhum!
Keithm
2
Você deve obter um distintivo de herói para este
Joe Schmucker
32

Use o seguinte local onde você pode encontrar todos ~AutoRecover.~vs*.sql( arquivos de recuperação automática ):

C:\Users\<YourUserName>\Documents\SQL Server Management Studio\Backup Files\Solution1
Mandar
fonte
4
"esta pasta está vazia"
adolf garlic 23/02
Este é o único que eu não conseguia lembrar. Não o limitei para a pasta postada e encontrei o que havia perdido com a morte do SSMS.
21817 Jeff Moden
1
Ou você pode tentar: C: \ Users \ YourUserName \ Meus Documentos \ SQL Server Management Studio \ Arquivos de Backup \ Solution1
Mandar
11

Talvez você não encontre os diretórios sugeridos ou seu arquivo de recuperação esteja ausente, graças a Deus eu repliquei a falha com um script não salvo e me levou a este diretório:

C: \ Usuários \ usuário \ OneDrive \ Documents \ Visual Studio 2015 \ Arquivos de backup \ Solution1

Então, talvez isso salve o seu dia :)

frapeti
fonte
9

Eu sei que este é um thread antigo, mas para quem procura recuperar um script após falhas no ssms, faça o seguinte

  1. Disco local aberto (C):
  2. Pasta Abrir usuários
  3. Encontre a pasta relevante para o seu nome de usuário e abra-a
  4. Clique no arquivo Documents
  5. Clique na pasta Visual Studio ou clique em Pasta de arquivos de backup, se visível
  6. Clique na pasta Arquivos de backup
  7. Pasta Solution1 aberta
  8. Qualquer arquivo temporário recuperado estará aqui. Os arquivos terminam com vs seguido por um número como vs9E61
  9. Abra os arquivos e verifique seu código perdido. Espero que ajude. Essas etapas exatas acabaram de funcionar para mim. estou usando o servidor SQL Express 2017
frustraçãomultiplicada
fonte
7

Estou usando o Windows 8 e encontrei os scripts ausentes no caminho abaixo:

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

Vá para SSMS >> Ferramentas >> Opções >> Ambiente >> AutoRecuperação

Existem duas configurações diferentes:

1) Salvar informações de AutoRecuperação a cada minuto

Esta opção salvará o arquivo de consulta SQL em determinado intervalo. Defina esta opção para o valor mínimo possível para evitar perdas. Se você definiu esse valor como 5, no pior caso possível, poderá perder os últimos 5 minutos do trabalho.

2) Mantenha as informações de AutoRecuperação por dias

Esta opção preservará as informações de AutoRecuperação por dias especificados. No entanto, sugiro que, em caso de acidente, abra o SQL Server Management Studio imediatamente e recupere seu arquivo. Não procrastine esta tarefa importante para datas futuras.

noobjet
fonte
11
Uma instalação automática corporativa reiniciou minha máquina na minha ausência - isso teria forçado o fechamento de todos os aplicativos. Havia abas abertas, algumas salvas e outras não. Tenho estas duas opções selecionadas e não existem opções de recuperação nem 'temporários' documentos em outros locais indicados por outros respondedores
Adolf alho
Eu tenho as duas opções, mas nada foi recuperado após a falha do SSMS.
Kate
6

Suplemento SSMSBoost (atualmente gratuito)

  • mantém o controle de todas as instruções executadas (as salva em disco)
  • salva regularmente o instantâneo do conteúdo do SQL Editor. Você mantém o histórico das modificações do seu script. Às vezes, a versão "melhor" não é a última e você deseja restaurar o estado intermediário.
  • mantém o controle das guias abertas e permite restaurá-las após o reinício. Guias não salvas também são restauradas.

+ toneladas de outros recursos. (Eu sou o desenvolvedor do suplemento)

Andrei Rantsevich
fonte
1
A propósito, este é um maravilhoso complemento. Acabou de me salvar duas horas de trabalho que eu pensava que tinha economizado, mas não tinha. (Eu não tenho nenhuma afiliação com Andrei)
Jonathan
Gostaria de poder votar mais. O SSMSBoost "salvou meu bacon" mais de uma vez.
Andrew Steitz
4

Você pode encontrar arquivos aqui, quando você fechou a janela do SSMS acidentalmente

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

Consegui recuperar meus arquivos do seguinte local:

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

Deve haver arquivos de recuperação diferentes por guia. Eu diria que procure os arquivos para a data em que você os perdeu.

NonProgrammer
fonte