안녕하세요.
log성 데이터를 넣는 테이블이 존재하는데, 데이터 량이 많다보니 한달씩 짤라서 테이블을 생성하여 데이터를 입력하고 있습니다.
총 12개의 테이블로 1년치 데이터만 가지고 있으며, 1년이 지난 시점에서 13개월째 되는 테이블은 Drop이 되고 있습니다.
예를들면 log_201902, log_201903 .... log_202001, log_202002 이런식으로요.
이런 상황일때 12개의 테이블을 union all 하여 view를 생성하여 조회를 하려고 하는데,
이렇게 동적 테이블에 대해서는 어떤 식으로 처리를 할 수 있는지 궁금합니다.
감사합니다.
테이블 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;