在 VB.NET/C# 中,如何将 SQL 表模式从数据库复制到另一个数据库? [英] In VB.NET/C#, how do I copy a SQL table schema from on DB to another?
本文介绍了在 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屋!
查看全文