SQL programming 
SMO (SQL Server Management Objects) 소개

SMO는 SQL Server를 관리하는데 사용되는 API로서 이를 이용하면 DB를 백업하거나 테이블을 생성하거나 스크립트를 만들어 내는 등의 여러가지 작업들을 쉽게 수행할 수 있다. SQL Server의 SMO API는 .NET을 기반으로 작성되었으며, SQL 2005부터 지원한다. SQL 2005 이전 버젼에서는 SQL DMO (SQL Database Management Objects)라는 COM 서버 API가 사용되었지만, SMO 출시 이후로 DMO를 사용하지 말고 SMO를 사용하라는 것이 Microsoft의 권장사항이다. SMO는 내부적으로 SQL 문을 생성하여 SQL 서버에 보내 명령을 실행하거나 결과값을 가져온다.





SMO Object 모델 개요

SMO는 기본적으로 계층적 구조로 이루어 진 클래스들의 집합으로서 가장 상위에는 Server 클래스가 있다. Server 클래스는 SQL 서버에 대한 연결 정보 및 기존 속성들을 가지고 있다. 전체 SMO 계층 구조는 SMO Object Model 링크에서 볼 수 있다. 계층적 구조에 대한 예로, Server 객체는 데이타베이스 컬렉션을 갖는 Databases 를 가지고 있으며, Databases는 여러 Database를 포함하고, 한 Database는 여러 Tables를 갖고 있다.
또한 SMO의 클래스들은 크게 3가지 주요 카테고리로 구분할 수 있는데, 아래의 테이블에서 간단한 개요를 볼 수 있다.


구분 설명
Instance 클래스 SQL 엔진 내부에 존재하는 SQL 오브젝트에 대한 클래스들로서 예를 들어 Database, Table, View, Index, Stored Procedure, Trigger, Function 등을 들 수 있다.
Scripter 클래스 SMO의 주요 기능중에 하나는 TSQL 스크립트를 생성해 준다는 것이다. 이의 핵심 클래스인 Scripter 클래스와 보조 클래스인 DependancyWalker, DependancyTree 등의 클래스가 여기에 속한다.
Utility 클래스 일종의 특별한 유틸러티 보조 클래스들로서 Backup 및 Restore 클래스, Transfer 클래스, SQL WMI 관련 클래스 등이 여기에 속한다.

본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.