동적 테이블명의 View 생성 0 4 1,721

by 허접탱이 [SQLServer] View 동적 테이블 [2019.02.19 14:55:13]


안녕하세요.

log성 데이터를 넣는 테이블이 존재하는데, 데이터 량이 많다보니 한달씩 짤라서 테이블을 생성하여 데이터를 입력하고 있습니다.

총 12개의 테이블로 1년치 데이터만 가지고 있으며, 1년이 지난 시점에서 13개월째 되는 테이블은 Drop이 되고 있습니다.

예를들면 log_201902, log_201903 .... log_202001, log_202002 이런식으로요.

이런 상황일때 12개의 테이블을 union all 하여 view를 생성하여 조회를 하려고 하는데,

이렇게 동적 테이블에 대해서는 어떤 식으로 처리를 할 수 있는지 궁금합니다.

 

감사합니다.

by 마농 [2019.02.19 15:36:16]

테이블 Drop 은 어떻게 하고 계신가요?
그거 하는 부분에 뷰 재생성 로직 끼워 넣으시면 될 듯 하네요.


by 허접탱이 [2019.02.19 15:47:56]

테이블 drop은 13개월에 해당하는 테이블이 존재하는지 확인 한 후 존재하면 drop하는 방식으로 처리하고 있습니다.

-13개월에 해당하는 테이블 존재여부 확인

IF exists (
  select * from dbo.sysobjects where id=object_id(N'dbo.DNS_DEBUG_LOG_'+substring(convert(varchar, dateadd(month,-13,getdate()), 112), 0, 7)) and objectproperty(id,N'IsUserTable') = 1
 )

 --존재하므로 테이블 drop
 BEGIN
  SET @SQL = 'DROP Table DNS_DEBUG_LOG_'+substring(convert(varchar, dateadd(month,-13,getdate()), 112), 0, 7)
  EXEC(@SQL)
 END;


by 마농 [2019.02.19 16:08:01]

동적 쿼리로 DROP TABLE 구문을 만드셨네요.
마찬가지 방식으로 VIEW 생성 구문을 만드시면 될 듯 하네요.
매월 초에 한번 뷰를 재생성하도록 하면 될 것 같습니다.


by 허접탱이 [2019.02.19 16:14:34]

아..procedure로 재생성 하라는 말씀이신거죠?

답변 감사합니다.^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입