【发布时间】:2013-06-12 10:31:09
【问题描述】:
我正在尝试使用 SQL Server 管理对象 (SMO)、Transfer 类创建表的副本(没有数据,只有架构)。我唯一没有弄清楚的是,当服务器位于不同的主机上时,如何指定要复制到的服务器。就我而言,我想从 10.1.2.x 复制到 10.1.2.y。有什么办法可以指定,还是这个类不支持?
也许有更好的 C# 解决方案?
static void CreateTableFromTable(string fromConnection, string toConnection, string dbName, string tablename, bool copyData = false)
{
Server fromServer = new Server(new ServerConnection(new SqlConnection(fromConnection)));
Database db = fromServer.Databases[dbName];
Transfer transfer = new Transfer(db);
transfer.CopyAllObjects = false;
transfer.DropDestinationObjectsFirst = false;
transfer.CopySchema = false; //Database schema? Or Table schema? I DO NOT want to overwrite the db schema
transfer.CopyData = copyData;
transfer.DestinationServer = "?";
transfer.DestinationDatabase = dbName;
transfer.Options.IncludeIfNotExists = true;
transfer.ObjectList.Add(db.Tables[tablename]);
transfer.TransferData();
}
【问题讨论】:
标签: c# sql-server smo