在 VB.NET/C# 中,如何将 SQL 表模式从数据库复制到另一个数据库? [英] In VB.NET/C#, how do I copy a SQL table schema from on DB to another?

查看:42
本文介绍了在 VB.NET/C# 中,如何将 SQL 表模式从数据库复制到另一个数据库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 vb.net 或 c# 将表架构从一个数据库移动到另一个数据库.我该怎么做?

I want to move a table schema from one database to another using vb.net or c#. How can I do that?

提前致谢

推荐答案

这篇文章 展示了如何使用 SQL Server 管理对象 (SMO)、C# 到脚本、带或不带数据的复制数据库架构.

This article show how to use SQL Server Management Objects (SMO), C# to Script, Copy Database Schema with or without data.

public class DBHelper
{
    #region Private Variables
    private static string sourceSQLServer;
    private static string destinationSQLServer;
    private static string sourceDatabase;
    private static string destinationDatabase;
    #endregion 

    #region Properties

    /// <summary>
    /// SourceSQLServer Holds Instance Name of Source SQL Server Database Name
    /// </summary>
    public static string SourceSQLServer
    {
        get { return DBHelper.sourceSQLServer; }
        set { DBHelper.sourceSQLServer = value; }
    }

    /// <summary>
    /// DestinationSQLServer Holds Instance Name of Destination SQL Server Database Name
    /// </summary>
    public static string DestinationSQLServer
    {
        get { return DBHelper.destinationSQLServer; }
        set { DBHelper.destinationSQLServer = value; }
    }

    /// <summary>
    /// SourceDatabase Holds Source Database 
    /// </summary>
    public static string SourceDatabase
    {
        get { return DBHelper.sourceDatabase; }
        set { DBHelper.sourceDatabase = value; }
    }

    /// <summary>
    /// DestinationDatabase Holds Destination Database Name
    /// </summary>
    public static string DestinationDatabase
    {
        get { return DBHelper.destinationDatabase; }
        set { DBHelper.destinationDatabase = value; }
    }
    #endregion 

    #region Static Methods
    /// <summary>
    ///  CopyDatabase Copies Database 
    /// </summary>
    /// <param name="CopyData">True if Want to Copy Data otherwise False</param>
    public static void CopyDatabase(bool bCopyData)
    {
        //Set Source SQL Server Instance Information
        Server server = new Server(DBHelper.SourceSQLServer); 

        //Set Source Database Name [Database to Copy]
        Database database = server.Databases[DBHelper.SourceDatabase];            

        //Set Transfer Class Source Database
        Transfer transfer = new Transfer(database);

        //Yes I want to Copy All the Database Objects
        transfer.CopyAllObjects = true;

        //In case if the Destination Database / Objects Exists Drop them First
        transfer.DropDestinationObjectsFirst = true;

        //Copy Database Schema
        transfer.CopySchema = true;

        //Copy Database Data Get Value from bCopyData Parameter
        transfer.CopyData = bCopyData;

        //Set Destination SQL Server Instance Name
        transfer.DestinationServer = DBHelper.DestinationSQLServer;

        //Create The Database in Destination Server
        transfer.CreateTargetDatabase = true;      

        //Set Destination Database Name
        Database ddatabase = new Database(server, DBHelper.DestinationDatabase);

        //Create Empty Database at Destination
        ddatabase.Create();

        //Set Destination Database Name
        transfer.DestinationDatabase = DBHelper.DestinationDatabase;

        //Include If Not Exists Clause in the Script
        transfer.Options.IncludeIfNotExists = true; 

        //Start Transfer
        transfer.TransferData();

        //Release Server variable
        server = null;
    }
    #endregion 
}

这篇关于在 VB.NET/C# 中,如何将 SQL 表模式从数据库复制到另一个数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆