[MSSQL] 현재 DB에서 데이터가 N개 미만인 테이블 목록 조회
2013. 6. 27. 17:55ㆍCoders
참고로,
인라인뷰에서 TOP 을 사용했기 때문에 MSSQL2005 미만 버전에서는 작동하지 않을 겁니다.
실제 제가 테스트해 봤던 DB에서는 데이터가 무지 많아서, 카운트를 그냥 때려넣기엔 부담이 좀 되었거든요.
근데, Syntax Highlighting 이 이상하게 색깔이 나오네요.
이거 무슨 문제인 지 아시는분???
DECLARE @SQLString NVARCHAR(500), @ParmDefinition NVARCHAR(500), @DataCount VARCHAR(30), @TableName VARCHAR(50), @MinCount VARCHAR(30); SET @MinCount = '10'; --여기에서 최소 카운트를 지정 SET @TableName = ''; PRINT '데이터가 ' + @MinCount + '개 미만인 테이블 리스트' WHILE EXISTS ( SELECT 1 FROM SYS.TABLES WITH (NOLOCK) WHERE NAME > @TableName) BEGIN SELECT TOP 1 @TableName = NAME FROM SYS.TABLES WITH (NOLOCK) WHERE NAME > @TableName ORDER BY NAME ASC; SET @SQLString = N'SELECT @DataCountDynamic = COUNT(1) FROM ( SELECT TOP ' + @MinCount + ' * FROM ' + @TableName + ' ) T'; SET @ParmDefinition = N'@DataCountDynamic VARCHAR(30) OUTPUT'; EXECUTE sp_executesql @SQLString, @ParmDefinition, @DataCountDynamic=@DataCount OUTPUT; IF @DataCount < @MinCount BEGIN PRINT @TableName; END; END;
'Coders' 카테고리의 다른 글
[MSSQL] FOR XML 을 이용한, GROUP BY 시 목록 나열? (0) | 2013.06.28 |
---|---|
TISTORY 에서 SyntaxHighlighter 사용하기. (0) | 2013.06.26 |
[MSSQL] CURSOR, WHILE-LOOP 코딩량 줄이기 팁 (0) | 2012.10.22 |