The SMO object model contains two types of classes:
Instance classes
Form a hierarchy that matches the database server object hierarchy. The top object is a SQL Server instance represented by the Server object. Under this object is a hierarchy of instance objects, including databases, tables, columns, indexes, and stored procedures. Instance classes are discussed in detail in Chapters 10 and 11.
Utility classes
Perform specific tasks and are independent of the server instance. Utility classes are discussed in detail in Chapters 12 and 13.
SMO has a collection of namespaces that represent different areas of functionality. These are described in Table 9-1.
Table 9-1. SMO namespaces
Namespace
Description
Microsoft.SqlServer.Management.Common
Classes common to SMO and Replication Management Objects (RMO)primarily classes used to establish a connection to a SQL Server instance
Microsoft.SqlServer.Management.Nmo
Classes used to develop and administer Notification Services instances and applications
Microsoft.SqlServer.Management.Smo
Instance classes, utility classes, event handlers, exceptions, and enumerations used to programmatically control SQL Server