database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6658 게시물 읽기
No. 6658
DB 테이블에서 특정 id 와 테이블이름 검색
작성자
무슨소리
작성일
2013-04-25 11:11ⓒ
2013-04-25 11:28ⓜ
조회수
7,571

 안녕하세요...

고수님들께 문의 드리겠습니다.

MS-SQL 특정 DB내에 200여개의 테이블이 있습니다.

ID라는 필드가 존재하는 테이블네에서 특정 ID 값이 있는 테이블명을 찾고 싶은테 

이런 경우에는 어떻게 접근을 해야 할까요??

 

5~6개 되는 테이블은 아래와 같이 UNION JOIN 을 사용했는데

SELECT ID, '테이블명' AS TBLNAME FROM TBLNAME01 UNION(.......) WHERE ID= '';

 

200개정도 테이블에서는 다른 방법을 찾아야 하는데 어떻게 해야 될지 막막해서 질문드립니다.

많은 가르침 부탁드립니다.

이 글에 대한 댓글이 총 2건 있습니다.

 대략...

 

 

 

DECLARE CUR_QRY CURSOR FOR 

SELECT QRY = 'SELECT TOP 1 ID, TABLE_NAME= ''' + TABLE_NAME + ''' FROM ' 

+ TABLE_NAME + ' WHERE ID = ''AAA''' FROM INFORMATION_SCHEMA.COLUMNS 

WHERE column_name = 'ID'

 

FOR READ ONLY 

OPEN CUR_QRY 

FETCH NEXT FROM CUR_QRY INTO @QRY

 

WHILE(@@FETCH_STATUS =0) BEGIN 

EXEC(@QRY) 

OPEN CUR_QRY 

FETCH NEXT FROM CUR_QRY INTO @QRY  

END 

CLOSE CUR_QRY 

 

.님이 2013-04-25 15:59에 작성한 댓글입니다. Edit

저도 대충 한 번...

 

DECLARE @colName VARCHAR(10);
SET @colName = 'id';
DECLARE @sql VARCHAR(MAX);
 
SELECT @sql = STUFF( 
(
SELECT 'UNION ALL SELECT TOP 1 ''' + ao.name + ''' AS tabName FROM ' + ao.name + ' WHERE ' + @colName + ' = 1 '
FROM sys.all_objects AS ao
INNER JOIN sys.all_columns AS ac ON ao.object_id = ac.object_id
WHERE ao.type = 'U' AND ac.name = @colName
FOR XML PATH('')
)
, 1, 10, '' )
;
 
EXECUTE ( @sql) ;
 

 

우욱님이 2013-04-26 10:27에 작성한 댓글입니다.
이 댓글은 2013-04-26 10:46에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6661로그테이블에 인덱스를 걸어야하나요? [3]
whiteboy
2013-04-29
8419
6660기본적인 LOCK 정책 변경하는 방법. [1]
이대규
2013-04-29
7463
6659완전 초보적인 질문 하나만 하겠습니다. [1]
김녹연
2013-04-25
7234
6658DB 테이블에서 특정 id 와 테이블이름 검색 [2]
무슨소리
2013-04-25
7571
6656sp 조건문where문을 if문의 형식으로 [1]
sq
2013-04-19
7677
6655생년월일에서 특정달 태어난 사람 조회 [1]
김정례
2013-04-17
7550
6654프로그램 에러시 락이걸리나요... [1]
정명규
2013-04-16
7289
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다