예를 들어서,
test라는 DB속에 있는 모든 테이블의 이름을 알려면
어떤 SQL이 필요한가요 물론 MSSQL에서요
그리고 그 테이블에서 시스템 테이블과 사용자 테이블을 구별하려면
어떻게 해야하나요?
저는
SELECT * FROM INFORMATION_SCHEMA.tables;하고 사용했는데
여기에는 일부 시스템 테이블이 포함되더군요
이 시스템 테이블들을 뺄려면 어떻게 해야 하는지
그리고 정확히 위의 SQL이 의미하는 바가 먼지 알켜주세요
우선 사용자 테이블을 찾을 경우 다음 Query를 써보세요.
SELECT * FROM sysobjects WHERE type='U'
* 이것은 현재 DB내에 있는 시스템 테이블입니다.
SELECT * FROM INFORMATION_SCHEMA.tables
* 이것은 master DB의 View에 있는 TABLES View에 대한 Query입니다.
점 앞에 있는 것은 소유자구요...
EXEC SP_HELP 치시면
특정 디비내의 테이블이 무엇이 있는지 알 수 있습니다.
시스템 테이블은 SYS_ 로 시작하는 것들입니다.
일례로,
EXEC SP_HELP SYSCONSTRAINTS 하시면 제약조건에 관련 컨스트래인에 관련된 테이블의 칼럼을 보실수 있습니당.
그럼 수고하세용