데이터 베이스 MySQL 튜토리얼 (转)SqlServer Management Objects简介,生成建表等SQL语句

(转)SqlServer Management Objects简介,生成建表等SQL语句

Jun 07, 2016 pm 03:40 PM
sqlserver

原文:http://topic.csdn.net/u/20080616/10/123ecf9b-e0de-4a16-94b9-091ebd60de5c.html Smo是SqlServer Management Ojbects的简称,由SQL2005提供的管理对象,sql-dmo的逻辑进化版本,主要功能由C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies下

原文:http://topic.csdn.net/u/20080616/10/123ecf9b-e0de-4a16-94b9-091ebd60de5c.html

Smo是SqlServer Management Ojbects的简称,由SQL2005提供的管理对象,sql-dmo的逻辑进化版本,主要功能由C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies下面的Microsoft.SqlServer.Smo.dll文件中的相关 

对象来实现,可以直接由vs2005开发的程序来引用。 
msdn参考文档:http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.aspx。 
文档中他列举了7条大的功能,其实毫不夸张地说,只要SQL Server Management Studio能实现的东西,用smo都能实现,因为SQL Server Management Studio就是用smo开发的。如果你有足够的实力,完全可以开发一个可以藐视SQL Server Management Studio的工具,比如加入智能感知的功能。 

具体详细应用这里就不展开了,对象太多...只举一个例子,很多人问的如何生成sql对象的脚本: 

(转)SqlServer Management Objects简介,生成建表等SQL语句(转)SqlServer Management Objects简介,生成建表等SQL语句Code
--先搞一个测试环境
use tempdb
create table test(id int identity(1,1))

 

(转)SqlServer Management Objects简介,生成建表等SQL语句Code
//添加引用
            
//Microsoft.SqlServer.ConnectionInfo.dll
            
//Microsoft.SqlServer.Smo.dll
            Microsoft.SqlServer.Management.Common.ServerConnection conn = new Microsoft.SqlServer.Management.Common.ServerConnection(
                
new System.Data.SqlClient.SqlConnection("server=localhost;uid=sa;pwd=***;database=master"));//一个数据库连接字符串
            Microsoft.SqlServer.Management.Smo.Server server = new Microsoft.SqlServer.Management.Smo.Server(conn);
            Microsoft.SqlServer.Management.Smo.Database db 
= server.Databases["tempdb"];
            Microsoft.SqlServer.Management.Smo.Table tb
= db.Tables["test"];

            System.Collections.Specialized.StringCollection sc
= tb.Script();
            
foreach (String s in sc)
            {
                Console.WriteLine(s);
            }

 

(转)SqlServer Management Objects简介,生成建表等SQL语句Code
输出: 
SET ANSI_NULLS ON 
SET QUOTED_IDENTIFIER ON 
CREATE TABLE [dbo].[test]
[id] [int] IDENTITY(1,1NOT NULL 
ON [PRIMARY] 

 

---

以上为原文,补充如下

添加引用如

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Management.Sdk.Sfc.dll

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Smo.dll

SQL SERVER 2008环境下测试通过

其它

 

(转)SqlServer Management Objects简介,生成建表等SQL语句(转)SqlServer Management Objects简介,生成建表等SQL语句Code
//生成建表SQL语句
            foreach (String s in sc)
            {
                
//sb.Append( s );
            }

            
///遍历表
            foreach( var item in db.Tables ) {
                
//sb.AppendLine( item.ToString() );
            }

            
//遍历字段
            foreach( var item in tb.Columns ) {
                
//sb.AppendLine(item.ToString());
            }

            
//遍历索引
            foreach( var item in tb.Indexes ) {
                
//sb.AppendLine(item.ToString());
            }

            
//遍历触发器
            foreach( var item in tb.Triggers ) {
                sb.AppendLine( item.ToString() );
            }

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

sqlserver 데이터베이스에 이름이 지정된 개체가 이미 존재하는 문제를 해결하는 방법 sqlserver 데이터베이스에 이름이 지정된 개체가 이미 존재하는 문제를 해결하는 방법 Apr 05, 2024 pm 09:42 PM

sqlserver 데이터베이스에 이름이 지정된 개체가 이미 존재하는 문제를 해결하는 방법

mdf 파일을 sqlserver로 가져오는 방법 mdf 파일을 sqlserver로 가져오는 방법 Apr 08, 2024 am 11:41 AM

mdf 파일을 sqlserver로 가져오는 방법

sqlserver 서비스를 시작할 수 없는 경우 수행할 작업 sqlserver 서비스를 시작할 수 없는 경우 수행할 작업 Apr 05, 2024 pm 10:00 PM

sqlserver 서비스를 시작할 수 없는 경우 수행할 작업

sqlserver 데이터베이스는 어디에 있나요? sqlserver 데이터베이스는 어디에 있나요? Apr 05, 2024 pm 08:21 PM

sqlserver 데이터베이스는 어디에 있나요?

sqlserver에서 실수로 삭제한 데이터베이스를 복구하는 방법 sqlserver에서 실수로 삭제한 데이터베이스를 복구하는 방법 Apr 05, 2024 pm 10:39 PM

sqlserver에서 실수로 삭제한 데이터베이스를 복구하는 방법

Java 연결 SqlServer 오류를 해결하는 방법 Java 연결 SqlServer 오류를 해결하는 방법 May 01, 2023 am 09:22 AM

Java 연결 SqlServer 오류를 해결하는 방법

sqlserver 포트번호 확인하는 방법 sqlserver 포트번호 확인하는 방법 Apr 05, 2024 pm 09:57 PM

sqlserver 포트번호 확인하는 방법

설치에 실패하면 sqlserver를 삭제하는 방법은 무엇입니까? 설치에 실패하면 sqlserver를 삭제하는 방법은 무엇입니까? Apr 05, 2024 pm 11:27 PM

설치에 실패하면 sqlserver를 삭제하는 방법은 무엇입니까?

See all articles