-
MSSQL Meta 검색카테고리 없음 2025. 11. 5. 10:38
모든테이블에서 데이터로 검색
DECLARE @SearchValue NVARCHAR(100) = N'검색값'; DECLARE @TableName NVARCHAR(256), @ColumnName NVARCHAR(128), @SearchSQL NVARCHAR(MAX); DECLARE TableCursor CURSOR FOR SELECT t.name, c.name FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id JOIN sys.types ty ON c.user_type_id = ty.user_type_id WHERE ty.name IN ('char', 'nchar', 'varchar', 'nvarchar', 'text', 'ntext'); -- 문자형 컬럼만 검색 OPEN TableCursor; FETCH NEXT FROM TableCursor INTO @TableName, @ColumnName; WHILE @@FETCH_STATUS = 0 BEGIN SET @SearchSQL = 'IF EXISTS (SELECT 1 FROM [' + @TableName + '] WHERE [' + @ColumnName + '] LIKE N''%' + @SearchValue + '%'') PRINT ''테이블 [' + @TableName + '] 컬럼 [' + @ColumnName + '] 에 존재함'''; EXEC (@SearchSQL); FETCH NEXT FROM TableCursor INTO @TableName, @ColumnName; END CLOSE TableCursor; DEALLOCATE TableCursor;✅ 테이블 코멘트(extended property) 검색 쿼리
✅ 테이블 코멘트(extended property) 검색 쿼리 SELECT s.name AS SchemaName, t.name AS TableName, ep.name AS PropertyName, CAST(ep.value AS NVARCHAR(500)) AS Comment FROM sys.extended_properties ep JOIN sys.tables t ON ep.major_id = t.object_id JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE ep.name = 'MS_Description' -- 표준 코멘트 프로퍼티명 AND CAST(ep.value AS NVARCHAR(500)) LIKE N'%검색어%' -- 검색어 입력 ORDER BY s.name, t.name;예를 들어 특정 컬럼 이름이 포함된 테이블을 찾고 싶다면 👇
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%컬럼명%' ORDER BY TABLE_SCHEMA, TABLE_NAME;또는 좀 더 상세한 정보(테이블 ID 등)까지 보고 싶다면 sys 뷰를 사용할 수 있어요:
SELECT t.name AS TableName, c.name AS ColumnName FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id WHERE c.name LIKE '%컬럼명%' ORDER BY t.name;💡 LIKE '%컬럼명%' 대신 = '정확한컬럼명' 으로 하면 완전 일치 검색이 돼요.
💡 뷰(View)까지 포함해서 찾고 싶다면 sys.objects를 조인해도 됩니다.예시 (테이블 + 뷰 포함):
SELECT o.name AS ObjectName, o.type_desc AS ObjectType, c.name AS ColumnName FROM sys.columns c JOIN sys.objects o ON c.object_id = o.object_id WHERE c.name LIKE '%컬럼명%' ORDER BY o.type_desc, o.name;댓글