在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.Management

Imports Microsoft.SqlServer.Management.Smo

Imports Microsoft.SqlServer.Management.Common

sql server smo的更多相关文章

  1. SQL Server Database Backup and Restore in C#

    SQL Server Database Backup and Restore in C# Syed Noman Ali Shah,                          7 Feb 201 ...

  2. SQL Server编程系列(2):SMO常用对象的有关操作

    原文:SQL Server编程系列(2):SMO常用对象的有关操作 在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的 ...

  3. SQL Server编程系列(1):SMO介绍

    原文:SQL Server编程系列(1):SMO介绍 续篇:SQL Server编程系列(2):SMO常用对象的有关操作 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己 ...

  4. (转) SQL Server编程系列(1):SMO介绍

    最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...

  5. SMO是英文SQL Server Management Objects的缩写(上一篇文章的补充)

    最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...

  6. 在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个。必须提供所有成员。 (microsoft.sqlserver.smo)

    问题:在SQL SERVER 2005中还原数据库时出现错误:system.data.sqlclient.sqlerror 媒体集有 2 个媒体簇 但只提供了 1 个.必须提供所有成员. (micro ...

  7. [转]SQL Server编程:SMO介绍

    转自:周公 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文 ...

  8. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  9. SQL Server自动化运维系列——监控跑批Job运行状态(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在上一篇文章中已经分析了SQL SERVER中关于邮 ...

随机推荐

  1. cocos2d lua的cclog 在logcat中显示

    -- cclog cclog = function(...) release_print(string.format(...)) end 改成这样就可以了

  2. JavaScript: top对象

    一般的JS书里都会在讲框架集的时候讲top,这会让人误解,认为top对象只是代表框架集,其实top的含义应该是说浏览器直接包含的那一个页面对象,也就是说如果你有一个页面被其他页面以iframe的方式包 ...

  3. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  4. uva 12648

    一个简单的搜索: 反正树的结构不会变,只需要把节点的名称换一下就行: 可惜比赛的时候思路不清晰: #include<cstdio> #define maxn 5050 #include&l ...

  5. CELERY里,这个WARNING如何消除?

    原来命令行里有提示,保证用-n给与不同的名字即可. 比如: [program:celeryd]command=/usr/local/python27/bin/celery worker --app=s ...

  6. Java简单文件传输 socket简单文件传输示例

    服务器端代码: import java.io.*; import java.net.*; /** * Created with IntelliJ IDEA. * User: HYY * Date: 1 ...

  7. 李洪强漫谈iOS开发[C语言-019]-断点调试

  8. 对QT的产品,以及QT的一些综合评论 good

    QT你不能说他不流行吧, WPS, Wirshark, KDE, dropbox, skype, virtualbox都和qt有关吧, 你想写个跨平台的C++程序, QT是个不错的选择, 普通PC应用 ...

  9. Android中改变dialog的显示的位置和大小

    private void setDialogSize(Dialog dg) { Window dialogWindow = dg.getWindow(); WindowManager.LayoutPa ...

  10. laravel route路由,视图和response和filter

    Laravel充分利用PHP 5.3的特性,使路由变得简单并富于表达性.这使得从构建API到完整的web应用都变得尽可能容易.路由的实现代码在 application/routes.php 文件. 和 ...