Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.NET/C#中,如何将SQL表模式从一个数据库复制到另一个数据库?_C#_Sql Server_Vb.net - Fatal编程技术网

在VB.NET/C#中,如何将SQL表模式从一个数据库复制到另一个数据库?

在VB.NET/C#中,如何将SQL表模式从一个数据库复制到另一个数据库?,c#,sql-server,vb.net,C#,Sql Server,Vb.net,我想使用vb.net或c#将表架构从一个数据库移动到另一个数据库。我该怎么做 “提前感谢”演示如何使用SQL Server管理对象(SMO)、C#来编写脚本、复制数据库架构(带或不带数据) public class DBHelper { #region Private Variables private static string sourceSQLServer; private static string destinationSQLServer; privat

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

“提前感谢”

演示如何使用SQL Server管理对象(SMO)、C#来编写脚本、复制数据库架构(带或不带数据)

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 
}
公共类DBHelper
{
#区域私有变量
私有静态字符串sourceSQLServer;
私有静态字符串destinationSQLServer;
私有静态字符串源数据库;
专用静态字符串目标数据库;
#端区
#区域属性
/// 
///SourceSQLServer保存源SQLServer数据库名称的实例名称
/// 
公共静态字符串源SQLServer
{
获取{return DBHelper.sourceSQLServer;}
设置{DBHelper.sourceSQLServer=value;}
}
/// 
///DestinationSQLServer保存目标SQL Server数据库名称的实例名称
/// 
公共静态字符串DestinationSQLServer
{
获取{return DBHelper.destinationSQLServer;}
设置{DBHelper.destinationSQLServer=value;}
}
/// 
///SourceDatabase保存源数据库
/// 
公共静态字符串源数据库
{
获取{return DBHelper.sourceDatabase;}
设置{DBHelper.sourceDatabase=value;}
}
/// 
///DestinationDatabase保存目标数据库名称
/// 
公共静态字符串目标数据库
{
获取{return DBHelper.destinationDatabase;}
设置{DBHelper.destinationDatabase=value;}
}
#端区
#区域静态方法
/// 
///复制数据库复制数据库
/// 
///如果要复制数据,则为True,否则为False
公共静态void复制数据库(bool bCopyData)
{
//设置源SQL Server实例信息
服务器服务器=新服务器(DBHelper.SourceSQLServer);
//设置源数据库名称[要复制的数据库]
Database=server.Databases[DBHelper.SourceDatabase];
//设置传输类源数据库
传输传输=新传输(数据库);
//是,我想复制所有数据库对象
transfer.CopyAllObjects=true;
//如果目标数据库/对象存在,请首先删除它们
transfer.DropDestinationObjectsFirst=true;
//复制数据库架构
transfer.CopySchema=true;
//复制数据库数据从bCopyData参数获取值
transfer.CopyData=bCopyData;
//设置目标SQL Server实例名称
transfer.DestinationServer=DBHelper.DestinationSQLServer;
//在目标服务器中创建数据库
transfer.CreateTargetDatabase=true;
//设置目标数据库名称
Database ddatabase=新数据库(服务器,DBHelper.DestinationDatabase);
//在目标位置创建空数据库
ddatabase.Create();
//设置目标数据库名称
transfer.DestinationDatabase=DBHelper.DestinationDatabase;
//脚本中的Include If Not Exists子句
transfer.Options.IncludeIfNotExists=true;
//开始转移
transfer.TransferData();
//释放服务器变量
服务器=null;
}
#端区
}