SQLSERVER 에는 다양한 시스템 테이블이 있으며, 이걸 활용하면 많은 노가다(?)성 일들을 줄일 수가 있다.
그중에 데이터베이스안에 있는 사용자 테이블의 데이터를 모두 삭제할 때 해당 쿼리를 얻는 방법이다.
SELECT * FROM SYS.SYSOBJECTS
-- 해당 쿼리를 실행해보면 다양한 오브젝트의 정보를 얻을 수 있다.
그렇다면 DELETE 쿼리를 얻기 위해 아래와 같이 응용할 수가 있다.
SELECT 'DELETE FROM ' + [NAME] FROM SYS.SYSOBJECTS WHERE [xtype] = 'U'
-- 해당 쿼리를 실행하면 결과는 DELETE 쿼리 목록이 조회 된다. 즉 노가다를 줄일 수 있다.!
-- U 는 사용자 테이블만 조회하기 위한 조건이다.
- xtype 의 종류
AF = 집계 함수(CLR)
C = CHECK 제약 조건
D = 기본값 또는 DEFAULT 제약 조건
F = FOREIGN KEY 제약 조건
L = 로그
FN = 스칼라 함수
FS = 어셈블리(CLR) 스칼라 함수
FT = 어셈블리(CLR) 테이블 반환 함수
IF = 인라인 테이블 함수
IT = 내부 테이블
P = 저장 프로시저
PC = 어셈블리(CLR) 저장 프로시저
PK = PRIMARY KEY 제약 조건(K 유형)
RF = 복제 필터 저장 프로시저
S = 시스템 테이블
SN = 동의어
SQ = 서비스 큐
TA = 어셈블리(CLR) DML 트리거
TF = 테이블 함수
TR = SQL DML 트리거
TT = 테이블 유형
U = 사용자 테이블
UQ = UNIQUE 제약 조건(K 유형)
V = 뷰
X = 확장 저장 프로시저
아래의 링크를 통해 좀더 sys.sysobjects 에 대해서 자세히 살펴볼 수 있다.
'IT > 데이터베이스' 카테고리의 다른 글
mssql recovery mode 확인 및 변경 (0) | 2014.11.25 |
---|