이번 시간은 시스템 뷰!
시스템 뷰의 각 컬럼에 대해서는 기술 하지 않고 쿼리로써 우리가 SSMS 디자인 환경에서 볼수 있는 내용을 시스템 뷰를 이용해서 가져올 수 있게 하겠습니다. 기준은 MS SQL2008 기준입니다. 예전 2000에서으로는 아마 없는 뷰들도 있을 겁니다. 2008에서 시스템 뷰 및 함수가 많이 추가 되었습니다. SSMS에서 시스템 뷰 리스트를 캡처하였습니다. ![]() 개체 정보 관련 시스템 뷰의 용도로는 예를 들어 프로그램쪽에 클래스 만들때, 문서 만들때, 기타 결과값으로 응용 값을 가져와야 될때 등 이용하면 좋겠죠 ^^ 각 시스템 뷰에 대한 자세한 칼럼들은 MSDN 을 보시면 심도있는 내용을 볼 수 있으니 참고 하시길 바랍니다. 여기선 간단히 필요하고 이해할 수 있다고 생각하는 부분만 보여드릴겁니다. 1. 특정 테이블 정보 보기
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 해놓겠습니다. 지금은 갑자기 하려니 단순한 것만..^^
|
|||||||||||