(转) SQL Server编程系列(1):SMO介绍
最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见,有也是一些零星的应用,特别是SSIS部分国内外的文章大都是讲解如何拖拽控件的,在开发过 程中周公除了参阅SQL Server帮助文档、MSDN及StackOverFlow等网站,这些网站基本上都是英文的,为了便于一些英文不好的开发者学习,周公在自己的理解上 加以整理成系列,不到之处请大家谅解。



- using System;
- using Microsoft.SqlServer.Management.Common;//需添加microsoft.sqlserver.connectioninfo.dll的引用
- using Microsoft.SqlServer.Management.Smo;//需添加microsoft.sqlserver.smo.dll的引用
- namespace SSISStudy
- {
- /// <summary>
- /// SQL Server编程些列文章(1):SMO介绍的配套代码
- /// 作者:周公
- /// 创建日期:2012-05-17
- /// 博客地址:http://blog.csdn.net/zhoufoxcn http://zhoufoxcn.blog.51cto.com
- /// 新浪微博地址:http://weibo.com/zhoufoxcn
- /// </summary>
- class SMODemo01
- {
- /// <summary>
- /// 显示数据库的概要情况
- /// </summary>
- public static void ShowServerInfo()
- {
- //创建ServerConnection的实例
- ServerConnection connection = new ServerConnection();
- //指定连接字符串
- connection.ConnectionString = "Data Source=goodapp;Initial Catalog=master;User ID=sa;Password=root;";
- //实例化Server
- Server server = new Server(connection);
- Console.WriteLine("ActiveDirectory:{0}", server.ActiveDirectory);
- Console.WriteLine("InstanceName:{0}",server.InstanceName);
- //列出当前SQL Server实例中的登录用户
- foreach (Login login in server.Logins)
- {
- Console.WriteLine("Name:{0},CreateDate:{1},DefaultDatabase:{2}", login.Name, login.CreateDate, login.DefaultDatabase);
- }
- //通过索引方式找到master数据库
- Database db = server.Databases["master"];
- Console.WriteLine("Database:{0}", db.Name);
- Console.WriteLine("CreateDate:{0},Dbo:{1}", db.CreateDate, db.Owner);
- Console.WriteLine("DataSpaceUsage:{0},SpaceAvailable:{1}", db.DataSpaceUsage, db.SpaceAvailable);
- Console.WriteLine("PrimaryFilePath:{0}", db.PrimaryFilePath);
- //列出master数据库下每个表的概要信息
- foreach (Table table in db.Tables)
- {
- Console.WriteLine("\tTable:{0},DataSpaceUsed:{1},CreateDate:{2}", table.Name, table.DataSpaceUsed, table.CreateDate);
- //urnCollection.Add(table.Urn);
- //列出每个表中每个列的概要信息
- foreach (Column column in table.Columns)
- {
- Console.WriteLine("\t\tColumn:{0},DataType:{1},Nullable:{2}", column.Name, column.DataType, column.Nullable);
- }
- }
- //列出master数据库中的角色信息
- foreach(DatabaseRole dbRole in db.Roles)
- {
- Console.WriteLine("DB Role {0} Created at {1}", dbRole.Name, dbRole.CreateDate);
- }
- Console.ReadLine();
- }
- }
- }

(转) SQL Server编程系列(1):SMO介绍的更多相关文章
- SQL Server编程系列(1):SMO介绍
原文:SQL Server编程系列(1):SMO介绍 续篇:SQL Server编程系列(2):SMO常用对象的有关操作 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己 ...
- SQL Server编程系列(2):SMO常用对象的有关操作
原文:SQL Server编程系列(2):SMO常用对象的有关操作 在上一篇周公简单讲述了SMO的一些基本概念,实际上SMO体系结构远不止周公在上一篇中讲述的那么简单,下图是MSDN上给出的一个完整的 ...
- [转]SQL Server编程:SMO介绍
转自:周公 最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文 ...
- Sql Server来龙去脉系列之二 框架和配置
本节主要讲维持数据的元数据,以及数据库框架结构.内存管理.系统配置等.这些技术点在我们使用数据库时很少接触到,但如果要深入学习Sql Server这一章节也是不得不看.本人能力有限不能把所有核心的知识 ...
- Sql Server来龙去脉系列 必须知道的权限控制核心篇
最近写了<Sql Server来龙去脉系列 必须知道的权限控制基础篇>,感觉反响比较大.这可能也说明了很多程序猿对数据库权限控制方面比较感兴趣,或者某些技术点了解的没有很透彻. 有些人看 ...
- Sql Server来龙去脉系列 必须知道的权限控制基础篇
题外话:最近看到各种吐槽.NET怎么落寞..NET怎么不行了..NET工资低的帖子.我也吐槽一句:一个程序猿的自身价值不是由他选择了哪一门技术来决定,而是由他自身能创造出什么价值来决定. 在进入本篇内 ...
- Sql Server来龙去脉系列之四 数据库和文件
在讨论数据库之前我们先要明白一个问题:什么是数据库? 数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...
- Sql Server来龙去脉系列之一 目录篇
从工作一直到现在都没怎么花功夫深入学习下Sql Server数据库,在使用Sql Server时90%的时间基本上都是在接触T-SQL,所以数据库这块基本上属于菜鸟级别.至于数据库的底层框架以及运行机 ...
- Expert for SQL Server 诊断系列
Expert for SQL Server 诊断系列 Expert 诊断优化系列------------------锁是个大角色 前面几篇已经陆续从服务器的几个大块讲述了SQL SERVER数据库 ...
随机推荐
- 常用cursor光标说明
1.cursor语法: cursor : auto | crosshair | default | hand | move | help | wait | text | w-resize |s-res ...
- dp——poj1088(Description)
dp可以按照思想大致分为两种,一种是递推的形式,一种是递归的形式(记忆化搜素). 比如求这个题因为无法知道从哪个点开始,所以只能用递归的形式,因为有一个回溯的过程. 但是很多题目既可以用递推也可以用递 ...
- 20155208徐子涵 2016-2017-2 《Java程序设计》第10周学习总结
#### **教材学习总结**网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴. * ...
- 第15次Scrum会议(10/27)【欢迎来怼】
一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/27 17:20~17:45,总计25min. 地点 ...
- Vue.js系列之项目搭建
项目搭建具体步骤如下: 1.安装node (中)https://nodejs.org/zh-cn/ (英)https://nodejs.org/en/ 2.安装cnpm镜像 (node自带安装了npm ...
- lnmp安装总结
1.安装准备 建一个目录用于存放各软件包的压缩文件, 如我把我的源码文件都放在了 /software目录下 切换到/software目录下,执行 wget http://dev.mysql.com/g ...
- #define vs. const vs enum
In one word, using const is better than define. enum is the best. There are lots of discussions. I p ...
- taro refs引用
创建 Refs Taro 支持使用字符串和函数两种方式创建 Ref: 使用字符串创建 ref 通过函数创建 ref(推荐) 你也可以通过传递一个函数创建 ref, 在函数中被引用的组件会作为函数的第一 ...
- 实例对象与 new 命令
引用:https://wangdoc.com/javascript/oop/new.html JavaScript 语言的对象体系,不是基于"类"的,而是基于构造函数(constr ...
- navicat外键设置
https://blog.csdn.net/qq_32486599/article/details/73497810