자주 있는 일은 아니지만 가끔 저장프로시저나 테이블 같은 것들을 쿼리로 파악해야 하는 경우가 있습니다.
보고서를 만든다거나 문서같은 것을 만들때 말이죠,
이때 사용하는 것이 'sys.objects'입니다.
(참고 : MSDN - sys.objects(Transact-SQL))
'sys.objects'를 테이블 처럼 이용하여 쿼리를 사용할 수 있습니다.
Select name From sys.objects Where type = 'U'
이런 식으로 말이죠.
위에 코드에서 보시면 아시겠지만 이 코드에서 중요한건 'type'입니다,
이미 MSDN을 보셨다면 알고 계시겠죠? ㅎㅎㅎ
개체 유형:
AF | 집계 합수 (CLR) | |
C | CHECK 제약 조건 | |
D | DEFAULT(제약 조건 또는 독립 실행형) | |
F | FOREIGN KEY 제약 조건 | |
FN | SQL 스칼라 함수 | |
FS | 어셈블리(CLR) 스칼라 함수 | |
FT | 어셈블리(CLR) 테이블 반환 함수 | |
IF | SQL 인라인 테이블 반환 함수 | |
IT | 내부 테이블 | |
P | SQL 저장 프로시저 | |
PC | 어셈블리(CLR) 저장 프로시저 | |
PG | 계획 지침 | |
PK | PRIMARY KEY 제약 조건 | |
R | 규칙(이전 스타일, 독립 실행형) | |
RF | 복제 필터 프로시저 | |
S | 시스템 기본 테이블 | |
SN | 시퀀스 개체 | |
SO | 시퀀스 개체 | |
SQ | 서비스 큐 | |
TA | 어셈블리(CLR) DML 트리거 | |
TF | SQL 테이블 반환 함수 | |
TR | SQL DML 트리거 | |
TT | CHECK 제약 조건 | |
U | 테이블(사용자 정의) | |
UQ | UNIQUE 제약 조건 | |
V | 뷰 | |
X | 확장 저장 프로시저 |
'sys.objects'와 동적 쿼리를 이용하면 일괄 관리가 가능한 저장 프로시저도 만들수 있습니다.
쓰기 나름이라는거 ㅎㅎ