저장되지 않은 SQL 쿼리 스크립트 복구


197

SSMS 충돌 / 저장되지 않은 탭이 실수로 닫히면 저장되지 않은 스크립트를 복구하는 방법?


3
나는 요한의 원칙에 동의한다. 그러나 이것은 때때로 우리 모두에게 발생합니다. "저는 그것을 구했다고 생각했습니다!" 코딩을 시작하기 전에 먼저 저장하는 습관을들이십시오. Ctrl + S는 당신의 친구입니다!
Graeme

4
(무료,하지만 매우 유용한되지 않음) SSMSBOOST (무료 커뮤니티 모드), 또는 레드 게이트를 시도
바실리 Ivoyzha

2
불행히도 SSMS에는 현재 Undo Closed Tab 기능이 없습니다. 다음 연결 항목을 만들었으므로 Microsoft는이 버전을 향후 버전에 추가 할 예정입니다. connect.microsoft.com/SQLServer/Feedback/Details/1044403
Rob Nicholson

답변:


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가 다시 시작될 때까지만 정보를 보유합니다. 여전히 작업을 저장하는 습관을 들이야합니다.
Matt

5
이 쿼리를 실행하려면 VIEW SERVER STATE 권한이 있어야합니다.
BornToCode

4
이 쿼리에 대해 많은 쿼리가 실행되는 데이터베이스에서이 쿼리를 실행하는 경우 필터 조건을 추가하는 것이 좋습니다. 여기서 execsql.text 같은 '%%로 검색 할 스크립트의 일부 부분'과 같은 where 절
Jeff Fol

3
쿼리 덕분에 실수로 잘못된 탭을 닫을 때 상당한 시간이 절약되었습니다. 정크 실행이 많이 있기 때문에 (일부 원하지 않는 것), 임시 테이블에 모두 덤프 한 다음 읽어서 필터링하여 초과되는 항목을 필터링하는 작은 추가 기능을 제공 할 수 있습니까?
Sava Glodic

3
이 작업은 저에게 완벽합니다. 아침 내내 스크립트를 개발 한 후 저장하지 않고 창을 닫고 울기 시작했습니다.
RobsionKarls

167

당신은 할 수있다 이러한 위치 (사용중인 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
~ vsA497.sql과 같은 임시 폴더 .. 파일을 찾으려고했지만 각 파일의 크기는 0kb입니다. 열기 후에도 파일에 작성된 줄이 없습니다. 백업 폴더에는 파일이 없습니다.
Mark

1
C : \ Users \ YourUserName \ AppData \ Local \ Temp는 내가 잃어버린 것을 정확하게 복구했습니다. 5 분 전에 파일이 손실되었습니다. Windows 10, SQL Server Management Studio 17.
dmoney

53

파티에 조금 늦었지만 이전에 언급 한 위치 중 어느 것도 나를 위해 일하지 않았습니다. 어떤 이유로 백업 / 자동 복구 파일이 내 PC의 VS15 폴더에 저장되었습니다 (SQL Server 2016 Management Studio 용)

C : \ Users \ YOURUSERNAME \ Documents \ Visual Studio 2015 \ 백업 파일 \ Solution1

Tools-Options-Environment-Import and Export Settings를 확인하고 싶을 수도 있습니다. 설정 파일의 위치가 백업 폴더를 가리킬 수 있습니다. VS15 폴더를 찾지 못했습니다.


7
이것은 SSMS 2017에 맞습니다.이 VS15 폴더에서 손실 된 파일을 대신 찾았습니다.
irgnosis

1
이 폴더를 체크 아웃하십시오. 광산도 여기 숨어있었습니다.
Radderz

1
감사합니다 감사합니다 !!!! 꽤 큰 스크립트가 예기치 않은 충돌로 잃어 버렸고 이것이 이것이 끝나는 폴더입니다 !!!
Unfallener

1
감사합니다-어디에서나 내 스크립트를 찾을 수 없습니다!
keithm

2
이 하나의 영웅 배지 가야
조 Schmucker

32

모든 파일을 찾을 수있는 다음 위치를 사용하십시오 ~AutoRecover.~vs*.sql( 자동 복구 파일 ).

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

4
"이 폴더는 비어 있습니다"
adolf 마늘

이것은 내가 기억할 수없는 것입니다. 나는 그것을 게시 된 폴더로 제한하지 않았고 SSMS 사망으로 잃어버린 것을 발견했습니다.
Jeff Moden

1
또는 다음을 시도해보십시오 : C : \ Users \ YourUserName \ My Documents \ SQL Server Management Studio \ Backup Files \ Solution1
Mandar

11

어쩌면 당신은 제안 된 디렉토리를 찾지 못하거나 복구 파일이 누락되었습니다. 감사합니다. 저장되지 않은 스크립트로 충돌을 복제 하고이 디렉토리로 안내했습니다.

C : \ Users \ user \ OneDrive \ Documents \ Visual Studio 2015 \ 백업 파일 \ Solution1

그래서, 아마도 이것은 당신의 하루를 절약 할 수 있습니다 :)


9

나는 이것이 오래된 스레드라는 것을 알고 있지만 ssms 충돌 후 스크립트를 검색하려는 사람은 다음을 수행하십시오.

  1. 로컬 디스크 (C)를 엽니 다.
  2. 사용자 폴더 열기
  3. 사용자 이름과 관련된 폴더를 찾아서여십시오
  4. 문서 파일을 클릭하십시오
  5. Visual Studio 폴더를 클릭하거나 표시되는 경우 백업 파일 폴더를 클릭하십시오.
  6. 백업 파일 폴더를 클릭하십시오
  7. Solution1 폴더 열기
  8. 복구 된 임시 파일이 여기에 있습니다. 파일은 vs로 끝나고 vs9E61과 같은 숫자가옵니다.
  9. 파일을 열고 분실 된 코드를 확인하십시오. 희망이 도움이됩니다. 그 정확한 단계는 저에게 효과적이었습니다. SQL Server 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
회사 자동 설치로 부재시 컴퓨터를 다시 시작했습니다. 이로 인해 모든 앱이 강제 종료되었습니다. 탭이 열려 있었고 일부는 저장하지 않았습니다. 이 옵션을 모두 선택했으며 다른 응답자가
지정한

두 가지 옵션이 있지만 SSMS가 실패한 후 아무것도 복구되지 않았습니다.
케이트

6

SSMSBoost 애드 인 (현재 무료)

  • 실행 된 모든 명령문을 추적합니다 (디스크에 저장)
  • 정기적으로 SQL 편집기 내용의 스냅 샷을 저장합니다. 스크립트 수정 내역을 유지합니다. 때때로 "최상의"버전이 마지막 버전이 아니므로 중간 상태를 복원하려고합니다.
  • 열린 탭을 추적하고 재시작 후 탭을 복원 할 수 있습니다. 저장되지 않은 탭도 복원됩니다.

다른 기능 + 톤. (나는 추가 기능 개발자입니다)


1
그건 그렇고 놀라운 추가 기능입니다. 그것은 내가 구했다고 생각했지만하지 않은 두 시간의 일을 저에게 구원해주었습니다. (나는 Andrei와 제휴 관계가 없습니다)
Jonathan

더 투표 할 수 있으면 좋겠다. SSMSBoost는 두 번 이상 "베이컨을 저장했습니다".
Andrew Steitz

4

SSMS 창을 실수로 닫았을 때 여기에서 파일을 찾을 수 있습니다

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

OS Windows 8.1?
Kiquenet

4

다음 위치에서 파일을 복구 할 수있었습니다.

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

탭마다 다른 복구 파일이 있어야합니다. 파일을 잃어버린 날짜의 파일을 찾으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.