一直不喜欢用SQL-DMO因为它是一个COM组件,在托管代码中使用总是有些麻烦。其实自从SQL2005出来后,就已经有了一个替代者 SMO - 一个托管代码组件
http://msdn.microsoft.com/en-us/library/ms345147.aspx SQL Management Objects
The SQL Management Objects (SMO) model is the management objectmodel for SQL Server 2005. SMO represents significant design andarchitectural improvements for the SQL Server management object model.It is a simple to use, but rich object model that is based on.NETFramework managed code. SMO is the primary tool for developingdatabase management applications using .NETFramework or for automatingSQL Server 2005 management operations. SMO is used by every dialog boxin SQL Server Management Studio, and every administrative action thatyou can perform in SQL Server Management Studio you can also accomplishby using SMO.
The new SMO object model and the Microsoft Windows ManagementInstrumentation (WMI) APIs replace SQL-DMO. Where possible, SMOincorporates similar objects as SQL-DMO for ease of use. You can stilluse SQL Server 2005 with SQL-DMO, but SQL-DMO will not be updated tomanage features that are specific to SQL Server 2005. SMO and SQL-DMO
The SMO object model is a logical continuation of the work done inSQL-DMO. SMO is feature-compatible with SQL-DMO, containing many of thesame objects. Where possible, the original SQL-DMO design is followed,but SMO has a number of additional features beyond SQL-DMO. To achievemaximum data definition language (DDL) and administrative coverage forSQL Server 2005, SMO adds more than 150 new classes.
The primary advantages of SMO are in its performance andscalability. SMO has a cached object model, which allows you to changeseveral properties of an object before effecting the changes to SQLServer. As a result, SMO makes fewer round trips to the server, andmakes its objects more flexible. SMO also has optimized instantiation,meaning that you can partially or fully instantiate objects. You canload many objects quickly by not instantiating all the properties ofthe objects.
Unlike SQL-DMO, which has a single application root directory thatkeeps references to all created server objects, SMO lets you establishmultiple roots for servers without establishing a new connection. SMOimplements advanced multiple-phase scripting, in addition to supportingSQL-DMO style scripting. You can also switch an object into capturemode and capture any DDL that would be emitted for that object, withoutactually applying changes to the server.
SQL-DMO also has a managed computer object that simplifies theinterface to WMI, in order to support WMI monitoring and serverconfiguration through the SMO object interface.