A 라는 데이터베이스
A 데이터베이스 안에
테이블: B, C, D, E, F, ....
B라는 테이블 안에
'a' 라는 데이터가 들어있습니다.
그런데 저는 a라는 데이터가 어디 있는 지도 모르고
어떤 테이블에 있는지도 모르고
A라는 데이터베이스 안에만 있다는 것만 알아요.
table 종류나 칼럼명을 통해서 추적은 가능한데
특정 data 값이 어떤 테이블에 있는지 검색하는 ms-sql 쿼리가 있을까요?ㅠㅠ
Comment 1
-
건우아빠
2016.12.25 22:56
참고..
/*
create table #return
(
TAB_NAME VARCHAR(100) ,
COLUMN_NM VARCHAR(100) ,
CNT INT
)
*/
DELETE #return ;
DECLARE @VALUE VARCHAR(100) ,@SQL NVARCHAR(MAX)
SET @VALUE = 'a' ;
DECLARE vendor_cursor CURSOR FOR
WITH RES AS
(
SELECT A.name TAB_NAME , B.name COLUMN_NM --, *
FROM sys.all_objects A JOIN sys.all_columns B ON A.object_id = B.object_id AND B.system_type_id IN ( 167 ,175)
WHERE A.type = 'U'
)
SELECT N'SELECT '''+ TAB_NAME + ''' TAB_NAME ,'''+ COLUMN_NM + ''' COLUMN_NM , COUNT(*) cnt FROM '+ TAB_NAME + ' WHERE '+ COLUMN_NM + ' = ''' + @VALUE + ''''
FROM RES ;
OPEN vendor_cursor
WHILE 1 = 1
BEGIN
FETCH NEXT FROM vendor_cursor INTO @SQL
IF @@FETCH_STATUS <> 0 BREAK
PRINT @SQL
insert into #return
exec sp_executesql @SQL
END
CLOSE vendor_cursor;
DEALLOCATE vendor_cursor;
SELECT * FROM #return WHERE CNT > 0