设为首页 收藏本站
查看: 1612|回复: 0

[经验分享] 在SQL Server 2008中SQL-DMO被SMO代替

[复制链接]

尚未签到

发表于 2015-7-2 09:09:39 | 显示全部楼层 |阅读模式
最近想研究通过编程控制操作SQL Server。下载了一个工具叫Sql Buddy。但在使用的时候发生异常,经查,是因为我的机器上安装的SQL Server Express 2008并没有提供SQL-DMO组件库。Google了一番,找到原因:
在MSDN上搜到SQL-DMO 参考:
  后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
SQL Server 分布式管理对象 (SQL-DMO) 是封装了 Microsoft SQL Server 数据库管理和复制管理的对象所组成的集合。SQL-DMO 允许您对管理 SQL Server 的应用程序进行计划。SQL-DMO 参考包含有关对象、集合、属性、方法、事件、常量和示例程序的详细信息。

  SQL-DMO 已被 SQL Server 管理对象 (SMO) 取代。

于是又查阅了下SMO的概述:
  SQL Server 管理对象 (SMO) 是针对 Microsoft SQL Server 的编程管理设计的对象。可以使用 SMO 生成自定义 SQL Server 管理应用程序。尽管 SQL Server Management Studio 是用于管理 SQL Server 的使用广泛的强大应用程序,但有时 SMO 应用程序可能对您更为适用。
  例如,可能需要简化控制 SQL Server 管理任务的用户应用程序,以满足新用户的需要并且降低培训成本。您可能需要创建自定义 SQL Server 数据库,或创建用于创建和监控索引效率的应用程序。还可以使用 SMO 应用程序将第三方硬件或软件无缝纳入数据库管理应用程序。
  SMO 对象模型扩展并取代了分布式管理对象 (SQL-DMO) 对象模型。与 SQL-DMO 相比,SMO 提高了性能、加强了控制,并且更易于使用。SMO 中包括大部分 SQL-DMO 功能,并且还有很多新类用于支持 SQL Server 中的新增功能。该对象模型直观明了,并且尽量使用 SQL-DMO 术语,以帮助您进行技能过渡。
  由于 SMO 与 SQL Server 2000、SQL Server 2005 和 SQL Server 2008 兼容,您可以轻松管理多版本环境。
  ....

  SMO 命名空间为 Microsoft.SqlServer.Management.Smo。SMO 作为 Microsoft .NET Framework 程序集实现。这意味着使用 SMO 对象之前必须先安装 Microsoft .NET Framework 版本 2.0 中的公共语言运行时。SMO 程序集随 SQL Server SDK 选件默认安装到全局程序集缓存 (GAC) 中。这些程序集位于 C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\ 中。有关详细信息,请参阅 Visual Studio .NET Framework 文档。


http://i.msdn.microsoft.com/Global/Images/clear.gif  SMO 类 SMO 类包括两个类别:实例类和实用工具类。
实例类
实例类表示 SQL Server 对象,如服务器、数据库、表、触发器和存储过程。 ServerConnection 类用于与 SQL Server 实例建立连接,并且控制发送到它的命令的捕获模式。
SMO 实例对象所构成的层次结构代表了数据库服务器的层次结构。顶部为 SQL Server 实例,其下为数据库,再下面是表、列、触发器等。如果存在一个父级对多个子级的关系(如某个表具有一个或多个列)是符合逻辑的,那么子级将由对象集合来表示。否则子级仅由对象来表示。
实用工具类
实用工具类是为执行特定任务而显式创建的一组对象。根据功能将它们划分为不同的对象层次结构:


  • 传输类。用于向其他数据库传输架构和数据。

  • 备份和还原类。用于备份和还原数据库。

  • 脚本程序类。用于创建脚本文件,以重新生成对象及其依赖关系。

  ...

  SMO 对象模型取代了 SQL-DMO。SMO 支持 SQL Server 2000、SQL Server 2005 和 SQL Server 2008。它支持更多 SQL Server 管理任务并包含 SQL Server 中的许多新功能。SMO 设计用于提高效率和加强控制。
  DMO 库是一个 COM 对象模型,而 SMO 作为 .NET Framework 程序集实现。COM 组件是一些库,这些库向应用程序提供可重用的功能并且采用非托管应用程序编程方式。.NET Framework 程序集提供可重用功能,供 .NET Framework 编写托管代码应用程序。
  向 .NET Framework 技术过渡的过程中,编写应用程序可采用部分托管代码和部分非托管代码。.NET Framework 支持与 COM 组件建立接口连接,这需要一个主互操作程序集。SQL-DMO 需要运行时包装,以便从基于 .NET Framework 的应用程序进行调用。
  看样,学习SQL Server的管理与控制,以后就全面研究SMO这个命名空间了。但是如果你想在SQL Server 2008中使用SQL-DMO,你可以下载Microsoft SQL Server 2008 功能包中的Microsoft SQL Server 2005 向后兼容组件
另注:Sql Buddy这个工具是开源的,用C#代码编写的。我决定使用SMO重写Sql Buddy这个工具以符合潮流。由于我对SQL-DMO和SMO都不熟悉。这可能要花费一段时间。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82436-1-1.html 上篇帖子: 使用Microsoft SQL Server 2000全文搜索功能构建Web搜索应用程序 下篇帖子: SQL Server 2008高可用性(High Availability)简介(2)—Database Snapshots
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表