특정값이 들어있는, 테이블명과 필드명을 알수 있는 쿼리를 작성해야 합니다. 도움을 주시면 정말 감사하겠습니다. 수고하세요
특정 값이라 함은... 모든 테이블의 모든 레코드를 검색해야 할 것 같네요.
거의 해킹 수준입니다.
Sysobjects 테이블과 syscolumns 테이블의 Catalog 정보를 이용해서
모든 사용자 테이블과 char 속성의 컬럼에 대하여
SELECT SQL 문을 생성하시고,
하나씩 실행하는 방법 외에 특별한 방법이 없을 것 같습니다.
인내심을 가지고 해보세요.
데이타가 아니라 칼럼, 테이블명이라면 설치된프로그램의 경로에 스크립트가 있습니다. 저도 이거 수정해서 쓰는데.. ASIQ라면..칼럼 조회는
select cast(current database as varchar(32)), cast(u.user_name as varchar(32)), cast(table_name as varchar(32)), cast(column_name as varchar(32)), cast(d.type_id as smallint), cast(ifnull(c.user_type, sst.ss_type_name, (select type_name from SYS.SYSUSERTYPE where type_id=c.user_type)) as varchar(32)), cast(isnull(d."precision",width) as integer), cast(width as integer ), cast(scale as smallint), cast((if d.domain_id NOT IN ( 6,7,9,8,10,11,12,13,14 ) then 10 else null endif) as smallint), cast((if nulls='Y' then 1 else 0 endif) as smallint), cast(null as varchar(254)), cast(sst.ss_domain_id as smallint), cast(column_id as smallint ) from SYS.SYSCOLUMN as c, SYS.SYSTABLE as t, SYS.SYSDOMAIN as d, SYS.SYSTYPEMAP as map, SYS.SYSSQLSERVERTYPE as sst, SYS.SYSUSERPERMS as u where c.table_id=t.table_id and t.table_name like @table_name and t.creator=u.user_id and u.user_name like @table_owner and c.domain_id=d.domain_id and map.sa_domain_id=c.domain_id and(map.sa_user_type=c.user_type or (select count(*) from SYS.SYSTYPEMAP where sa_user_type=c.user_type)=0 AND (map.sa_user_type is null)) and sst.ss_user_type=map.ss_user_type and (nullable is null or nullable='N') and c.column_name like @column_name
테이블 조회는
select cast(current database as varchar(30)), cast(creator as varchar(30)), cast(tname as varchar(30)), cast((if tabletype='VIEW' then 'VIEW' else if creator='SYS' and tabletype='TABLE' then 'SYSTEM TABLE' else 'TABLE' endif endif) as varchar(30)), cast(null as varchar(254)) from SYS.SYSCATALOG where (creator like @table_owner) and (tname like @table_name) and( @table_type='%' or(locate(@table_type,'''TABLE''')<>0 and tabletype<>'VIEW' and creator<>'SYS') or(locate(@table_type,'''VIEW''')<>0 and tabletype='VIEW') or(locate(@table_type,'''SYSTEM TABLE''')<>0 and tabletype<>'VIEW' and creator='SYS')) and(current database like @table_qualifier)
이렇게 되어 있네요.. 여기있는 테이블 참조하심..
그리구 질문하실때는 제품과 버젼도 함께..