포스팅하던중 친구가 이러한 쿼리가 가능하냐고 연락이와서 생각난김에 글을적어본다
친구의 요구사항은 테이블이 db_20161025,db_20161125,db_20161225 매달마다 백업하는 테이블이 있다고 가정을하고
'db_' 가 포함된 테이블을 전부 셀렉트 할수있냐는것이었다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | --커서 시작 DECLARE UserTable_Cursor CURSOR FOR -- 테이블 중에 name 이 'db_'값 찾기 select name from sysobjects where name like('db_%') OPEN UserTable_Cursor DECLARE @name varchar(20) DECLARE @strsql nvarchar(300) set @name = (select top 1 name from sysobjects where name like('db_%')) FETCH NEXT FROM UserTable_Cursor INTO @name WHILE (@@FETCH_STATUS = 0) BEGIN SET @strsql = ' SELECT * FROM ' + @name EXEC SP_EXECUTESQL @strsql FETCH NEXT FROM UserTable_Cursor INTO @name END CLOSE UserTable_Cursor DEALLOCATE UserTable_Cursor | cs |
4번 셀렉트문을 돌린값이다 ( 샘플 예제)
커서실행시
'ASP.NET MVC > SQL' 카테고리의 다른 글
SQL :: 3 시도별 총회원 등급 카운트 (0) | 2018.05.06 |
---|---|
MSSQL :: 1 Join (0) | 2017.01.13 |
WRITTEN BY
,