안규 공부방

MS-SQL > MS SQL View - 시스템 뷰

등록일 : 2017-07-03 19:50 조회수 : 95,396

이번 시간은 시스템 뷰!

시스템 뷰의 각 컬럼에 대해서는 기술 하지 않고 쿼리로써 우리가 SSMS 디자인 환경에서 볼수 있는

내용을 시스템 뷰를 이용해서 가져올 수 있게 하겠습니다.

기준은 MS SQL2008 기준입니다.

예전 2000에서으로는 아마 없는 뷰들도 있을 겁니다. 2008에서 시스템 뷰 및 함수가 많이 추가 되었습니다.

SSMS에서 시스템 뷰 리스트를 캡처하였습니다.



개체 정보 관련 시스템 뷰의 용도로는 예를 들어 프로그램쪽에 클래스 만들때, 문서 만들때, 기타 결과값으로

응용 값을 가져와야 될때 등 이용하면 좋겠죠 ^^


각 시스템 뷰에 대한 자세한 칼럼들은 MSDN 을 보시면 심도있는 내용을 볼 수 있으니 참고 하시길 바랍니다.

여기선 간단히 필요하고 이해할 수 있다고 생각하는 부분만 보여드릴겁니다.

1. 특정 테이블 정보 보기
 
SELECT OBJECT_NAME(object_id) 테이블,name 컬럼,TYPE_NAME(system_type_id) 타입,
               max_length 크기, precision 정밀도,
               CASE WHEN is_nullable = 1 THEN 'NULL' ELSE 'NOT NULL' END Null허용여부
   FROM    sys.columns
   WHERE   OBJECT_NAME(object_id) = N'테이블명'



2. DB의 개체 정보 보기
   SELECT object_id 개체아이디,name 개체명,type 타입코드,type_desc 타입명  
   FROM    sys.objects

3. 특정 개체 정보만 보기
   위의 sys.objects 의 타입을 가지고 찾을 수 있으나 시스템 뷰에 이미 제공하고 있습니다.
   예전 SQL 2000에서는 못봤는데 만들려고 보니 있네요. 쩝

1) 사용자 테이블 정보 보기
SELECT * FROM sys.tables
2) 사용자 View 정보 보기
SELECT * FROM sys.views
3) Proceduce 정보 보기
SELECT * FROM sys.procedures
4) Index 정보 보기
       SELECT OBJECT_NAME(object_id) 테이블명, name 인덱스명, index_id 인덱스아이디,
type 인덱스타입코드, type_desc 인덱스타입명,
CASE WHEN is_unique = 1 THEN 'Y' ELSE 'N' END Unique유무,
CASE WHEN is_primary_key = 1 THEN 'Y' ELSE 'N' END PK유무
FROM    sys.indexes

5) 트리거 정보 보기
SELECT OBJECT_NAME(parent_id) 테이블명,object_id 개체아이디,name 트리거명,
CASE WHEN is_disabled = 1 THEN 'Y' ELSE 'N' END 비활성화유무
FROM  sys.triggers


4. 상세 정보 보기   
   1) 인덱스 컬럼 정보 보기
SELECT OBJECT_NAME(A.object_id) 테이블명,B.name 인덱스명,
COL_NAME(A.Object_id,A.column_id) 컬럼명,A.key_ordinal 인덱스순서,
CASE WHEN is_descending_key = 1 THEN 'desc' ELSE 'asc' END 정렬
FROM    sys.index_columns A
INNER JOIN sys.indexes B ON  B.object_id  = A.object_id
AND  B.index_id  = A.index_id

2) Primary Key 또는 Unique 제약 조건 보기
SELECT OBJECT_NAME(A.parent_object_id) 테이블명,A.object_id 개체코드,A.name 개체명
FROM    sys.key_constraints A

3) 프로시져,뷰,함수 개체의 내용 보기
SELECT OBJECT_NAME(id) 개체명,colid 내용순서, text FROM sys.syscomments

  
이상으로 간략하게 개체 정보를 볼수 있는 시스템 뷰에 대해 알아 봤습니다.
MS SQL 은 정말 많은 시스템 뷰 및 함수를 제공하고 있습니다.

이런 개체 뿐 아니고 DB 정보, 성능, 락 등 다양한 뷰를 제공하고 있으니

시간 되신다면 한번 살펴 보는것도 아주 유용합니다.

우리가 SSMS 디자인 환경에서 볼수 있는 많은 정보들도 이러한 시스템 뷰를 이용하시면 다 처리 가능합니댜.

이렇게 레코드 결과값으로 리턴이 가능하다면 이 결과값을 프로그램에서 이용하여 위에서 말씀드린 용도로

사용하면 정확하고 빠르게 처리할 수 있겠죠 ^^


추가 되는 내용이 있으면 꾸준히 Update 해놓겠습니다. 지금은 갑자기 하려니 단순한 것만..^^
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.