在SQL Server2005以前的版本中,SQL分布式管理对象(SQL-DMO)为我们提供了非常有效的方法来通过编程的方式管理SQL Server。SQL-DMO支持基于COM的接口,开发人员可以通过这个接口来发现和操作SQL Server对象。而SQL Server2005在这方面做了更大的改进,它提供了一种新的管理框架,叫做SQL Server管理对象(简称为SMO),这套组件具有更强大的管理能力,而且它被建立在.Net Framework2.0之上。当然,我们仍然可以使用SQL-DMO来管理SQL Server2005,但SMO为我们提供了更多的功能,也支持很多SQL Server2005的新特性,它的性能也比SQL-DMO更优化。微软将SMO定义为“为可编程管理微软SQL Server而设计的对象”。SMO给了开发人员更全面地管理SQL Server的各种元素的能力,如表、列、索引、过程、触发器、Service Broker、快照数据库、备份和恢复、文件和文件组等。
SMO由.NET Framework2.0写成。所以我们必须使用Visual Studio2005或其后继版本中使用SMO。我们可以在Windows2003、Windows XP、Windows2000和Windows NT(SP5及以上版本)。别外,我们可以使用SMO连接SQL Server7、SQL Server2000和Sql Server2005数据库,但SMO并不支持更底版本的数据库,如sql server6.5。虽然SMO可以降级使用,但很明显,如果使用较低级的数据库,它的更多的特性就无法使用了。要使用SMO,我们需要如下的.NET库:
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SmoEnum
Microsoft.SqlServer.SqlEnum
我们可以在C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies目录中找到这些库。如果我们没有这些组件,可以使用SQL Server客户端利用SQL Server2005的任何版本来安装它们。
在每个引用SMO对象的代码文件中,我们都要使用imports(VB.NET)来导入以下的命名空间:Imports Microsoft.SqlServer.ManagementImports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common