새소식

반응형
Database/MSSQL Server

MSSQL_쿼리 결과값 테이블에 넣기

  • -
반응형

RESTORE FILELISTONLY 등의 내용을 볼때 해당 내용이 너무 많거나 필요한 정보만 볼때 또는 해당 내용을 로그 테이블등에 저장 해야 하는 경우가 있습니다. 이럴때 이 내용을 테이블에 저장 할 수 있도록 하기 위해서는 다음과 같이 할 수 있습니다.


일반적인 RESTORE FILELISTONLY 구문

RESTORE FILELISTONLY FROM DISK ='D:\VB_Share\201503_FG.bak'


다음과 같이 5개의 결과물이 나옵니다.




해당 내용을 테이블에 저장 할때는 다음과 같이 하면 됩니다.

예시 쿼리를 보면 쉽게 이해가 되실 겁니다.


-- 변수 테이블
DECLARE @TEMP_TBL TABLE (
           COL1 VARCHAR(255)
           ,COL2 VARCHAR(255)
           ,COL3 VARCHAR(255)
           ,COL4 VARCHAR(255)
           ,COL5 VARCHAR(255)
           ,COL6 VARCHAR(255)
           ,COL7 VARCHAR(255)
           ,COL8 VARCHAR(255)
           ,COL9 VARCHAR(255)
           ,COL10 VARCHAR(255)
           ,COL11 VARCHAR(255)
           ,COL12 VARCHAR(255)
           ,COL13 VARCHAR(255)
           ,COL14 VARCHAR(255)
           ,COL15 VARCHAR(255)
           ,COL16 VARCHAR(255)
           ,COL17 VARCHAR(255)
           ,COL18 VARCHAR(255)
           ,COL19 VARCHAR(255)
           ,COL20 VARCHAR(255)
           ,COL21 VARCHAR(255))


-- 값 넣기
INSERT INTO @TEMP_TBL
EXEC('RESTORE FILELISTONLY FROM DISK =' +''''+'D:\VB_Share\201503_FG.bak'+'''')


-- 원하는 값만 조회
SELECT * FROM @TEMP_TBL
WHERE COL1 LIKE '%FG%' 
  


해당 내용에 대한 결과값 입니다. 원하는 결과만 볼 수 있으며, 또한 결과를 변형 하거나 할 수도 있습니다.

다만 불편한 사항은 RESTORE FILELISTONLY 의 결과값 컬럼에 맞게 초기에 변수 테이블 또는 받고자 하는 테이블의 컬럼 수를 맞춰줘야 합니다.  그 내용을 임시테이블에 받고 다시 원하는 테이블에 넣어야지 보고자 하는 컬럼만 조회가 가능 합니다.




출처 : ​http://stackoverflow.com/questions/3413326/how-to-insert-into-a-temp-table-the-info-given-by-restore-filelistonly-headero


반응형

'Database > MSSQL Server' 카테고리의 다른 글

MSSQL_파일그룹 백업 및 복원  (0) 2015.04.09
MSSQL_DMV 모음(1)  (0) 2015.04.09
MSSQL_DB내의 개체 생성 스크립트 생성  (0) 2015.04.09
Buffer Manager/Buffer Cache Hit Ratio  (0) 2015.04.06
MSSQL_인스턴스  (0) 2015.04.06
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.