比较 SMO 和 SQL-DMO

SQL Server 管理对象 (SMO) 为 SQL Server 2005 中引入的托管代码对象模型。它取代了 SQL 分布式管理对象 (SQL-DMO)。与 SQL-DMO 类似,SMO 提供了用于管理 SQL Server 的对象。编程模型已经过改进,并且已增加对象数目从而包括 SQL Server 2005 中引入的功能。从 SQL Server 2008 开始,SMO 基于 SQL Server 基础类 (SFC)。在 SQL Server 2008 中还引入了基于策略的管理对象模型 (DMF)。

SMO 包括以下功能:

  • 改进的性能。仅当具体引用对象时才会加载对象。创建对象时仅部分加载对象属性。其余对象将在直接被引用时进行加载。

  • 捕获并成批执行 Transact-SQL 语句。可以捕获语句并将其作为批发送以提高网络性能。

  • 通过 WMI 提供程序管理 SQL Server 服务。可以通过编程方式启动、停止和暂停 SQL Server 服务。

  • 高级脚本编写。可以生成 Transact-SQL 脚本重新创建 SQL Server 对象以描述与 SQL Server 实例上其他对象之间的关系。

  • 数据传输可借助于脚本编写功能并使用 Integration Services。

  • 使用唯一资源名称 (URN)。

  • 事件处理功能,它允许开发人员插入发生特定事件时要执行的代码。

  • 用于标识特定于 SMO 错误的异常。

  • 包含更多数据库对象。例如,ForeignKey 对象允许对外键进行更多控制。

SMO 还通过新对象或新属性来表示 SQL Server 2005 中引入的许多功能和组件。这些新增的功能和组件包括:

  • 用于在分区方案上存储数据的表和索引分区。有关详细信息,请参阅已分区表和已分区索引概念

  • 用于管理 SOAP 请求的 HTTP 端点。有关详细信息,请参阅 SOAP 会话的支持机制

  • 旨在提高并发性的快照隔离和行级版本控制。有关详细信息,请参阅使用快照隔离

  • XML 架构集合、XML 索引和 XML 数据类型提供对 XML 数据的验证和存储。有关详细信息,请参阅使用 XML 架构使用 XML 数据类型

  • 用于创建数据库只读副本的视点数据库。

  • Service Broker 对基于消息的通信的支持。有关详细信息,请参阅 SQL Server Service Broker

  • 针对 SQL Server 数据库对象的多个名称的同义词支持。有关详细信息,请参阅同义词简介

  • 数据库邮件管理,它允许您在 SQL Server 中创建电子邮件服务器、电子邮件配置文件和电子邮件帐户。有关详细信息,请参阅数据库邮件

  • 已注册的服务器对注册连接信息的支持。有关详细信息,请参阅管理已注册的服务器

  • 跟踪和重播 SQL Server 事件。有关详细信息,请参阅使用 SQL Server Profiler使用 SQL 跟踪

  • 针对用于安全控制的证书和密钥的支持。有关详细信息,请参阅加密层次结构

  • 用于在发生 DDL 事件时添加功能的 DDL 触发器。有关详细信息,请参阅 DDL 触发器