The FailedOperationException class represents the exception raised when an operation fails. Failed database operations include CREATE, DROP, ALTER, SCRIPT, REFRESH, RENAME. This exception can also be raised when some of the public methods in SMO fail.

The ProgressReportEventArgs object provides programmatic access to the arguments used to report the progress of an operation that works through an object hierarchy, such as discovering dependencies in scripting operations.

This class represents the SQL Server Sequence. A sequence is a user-defined schema bound object that generates a sequence of numeric values according to the specification with which the sequence was created. The sequence of numeric values is generated in an ascending or descending order at a defined interval and can be configured to restart (cycle) when exhausted. Sequences, unlike identity columns, are not associated with specific tables. Applications refer to a sequence object to retrieve its next value. The relationship between sequences and tables is controlled by the application. User applications can reference a sequence object and coordinate the values across multiple rows and tables.

The ServerProxyAccount class represents the implementation of a proxy account on an instance of SQL Server. The ProxyAccount object allows for impersonation of job step execution. Created by the system administrator, it can be further be assigned to a login or a server role or a database role and one of the subsystems, except for Transact-SQL.

The SoapMethodCollectionBase class is a base class that is inherited by SOAP method collection objects and provides programmatic access to the collection of SOAP methods that exist in the SOAP configuration.

The UnsupportedEngineTypeException class represents the exception raised when an SMO operation is attempted on a Database Engine type that does not support that operation. A Database Engine type is either an instance of the SQL Server Database Engine, or SQL Azure.

The WorkloadGroup class is represents a SQL Server workgroup, which contains a group of session requests. Workload groups allow aggregate monitoring of resource consumption and application of uniform policies to all requests in the group.

The AssemblyAlterOptions enumeration contains values that are used to specify the addition options when modifying an assembly. The values are bit flag values, and they can be combined by adding the values.

The DatabaseStatus enumeration is a list of constant values that specify the status of a database, whether it be loading, recovering, or normal, for example. This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

The MediaTypes enumeration contains values that are used to specify the type of media used to store data. This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

Remarks

The Microsoft.SqlServer.Management.Smo namespace contains the instance object classes that represent SQL Server Database Engine objects and some utility classes that represent specific tasks, such as scripting. When a connection to the instance of the SQL Server Database Engine has been established by using a Server object variable, objects on the instance can be accessed by using the SMO instance objects. For example, you can use the Database object to access databases on the connected instance of SQL Server Database Engine. All the instance classes are related to the Server class in the object hierarchy. Utility classes exist outside of the Server class object hierarchy and represent specific tasks, such as backup or scripting.

Most of the classes Microsoft.SqlServer.Management.Smo namespace resides in the Microsoft.SqlServer.Smo.dll and Microsoft.SqlServer.SmoExtended.dll files. Additionally, some of the enumeration classes are in the Microsoft.SqlServer.SqlEnum.dll and Microsoft.SqlServer.SmoEnum.dll assembly files. You will have to import all four files to access all of the classes in the Microsoft.SqlServer.Management.Smo namespace.