1つのリモートSQLサーバーインスタンスから別のリモートSQLサーバーインスタンスにテーブルをコピーできるコンソールアプリケーションを作成する必要があります。EzAPIを使用してリモートsqlサーバーのソースと宛先にSSISパッケージを作成して実行する方法
私は両方の接続(ソースおよび宛先)とテーブル名は、コンソールアプリケーションへのパラメータとして提供されますEzAPI
と呼ばれるライブラリを使用しています。
public class OleDBToOleDB : EzSrcDestPackage<EzOleDbSource, EzSqlOleDbCM, EzOleDbDestination, EzSqlOleDbCM>
{
public OleDBToOleDB(Package p) : base(p) { }
public static implicit operator OleDBToOleDB(Package p) { return new OleDBToOleDB(p); }
public OleDBToOleDB(string SrcServer, string SrcDB, string SrcTable,string SrcUser,string SrcPassword, string DstServer, string DstDB, string DstTable,string DstUser,string DstPassword)
{
SrcConn.SetConnectionString(SrcServer, SrcDB);
SrcConn.ServerName = SrcServer;
SrcConn.InitialCatalog = SrcDB;
SrcConn.UserName = SrcUser;
SrcConn.Password = SrcPassword;
Source.Table = SrcTable;
DestConn.SetConnectionString(DstServer, DstDB);
DestConn.ServerName = DstServer;
DestConn.InitialCatalog = DstDB;
DestConn.UserName = DstUser;
DestConn.Password = DstPassword;
Dest.Table = DstTable;
}
}
static void Main(string[] args)
{
OleDBToOleDB p = new OleDBToOleDB("localhost", "TestDB", "Address", "sa", "123", "localhost", "DestDB", "Address", "sa", "123");
p.Execute();
Console.Write(string.Format("Package2 executed with result {0}\n",p.ExecutionResult));
}
このコードに問題がある:
- それは先サーバー上のテーブルを作成していないので、私は 自分でそれを手動で作成する必要があり
は、ここに私の試みです。
- このコードは、ローカルホスト上で正常に動作しますが、私はそれがこのエラーが発生したリモートサーバーへ 変更サーバ名をしようとすると:私はこのエラーが意味することを見つけ、ウェブ上で検索した後
Unhandled Exception: System.Runtime.InteropServices.COMException (0xC020801C): Exception from HRESULT: 0xC020801C
このエラーはIntegration ServicesのAcquireConnections例外です。
このコードをリモートSQL Serverインスタンスで実行して、データを転送する前に、パッケージを宛先サーバーに作成させるにはどうすればよいですか。
ありがとうございます。