SSISを使用して、複数のテーブルを含む単一のmdbファイルをSQL Serverに動的にインポートしますか?

ローランスアンブローゼ

私は次の.mdbような複数のテーブルを含む単一のMSAccessファイルを持っています

テーブル名:

UserLog_1_2019
UserLog_2_2019
User_Log_3_2019

毎月、新しいテーブルが自動的に生成されます。

SSISを使用して、上記の動的テーブルをSQLServerにインポートしたいと思います。このシナリオを達成する方法は?

ありがとう、ローランスA

しましょう

この回答では、これを達成するための2つのアプローチを提供します。

  1. SSISの使用
  2. C#を使用

(1)SSISアプローチ

AccessテーブルリストをSystem.Object型の変数に取得してから、Foreachループコンテナを使用してテーブル名をループする必要があります。詳細な情報を提供する多くのリンクがあります。例として、次のSO回答を参照すると、いくつかの洞察が得られます。

(2)C#アプローチ

最近、C#を使用して開発されたクラスライブラリであるGit-Hubで新しいプロジェクトを開始しました。これを使用して、スキーママッピングアプローチを使用して、excel、word、powerpoint、text、csv、html、json、およびxmlから異なるスキーマ定義を持つSQLサーバーテーブルに表形式のデータをインポートできます。それをチェックしてください:

同様のコードを使用できます。

string con = @"Data Source=.\SQLInstance;Initial Catalog=tempdb;integrated security=SSPI;";

using (SchemaMapperDLL.Classes.Converters.MsAccessImport smAccess = new SchemaMapperDLL.Classes.Converters.MsAccessImport(@"U:\Passwords.mdb"))
{
    using (SchemaMapperDLL.Classes.SchemaMapping.SchemaMapper SM = new SchemaMapperDLL.Classes.SchemaMapping.SchemaMapper("dbo","passwords"))
    {
        SM.CreateDestinationTable(con);
        //Read Access
        smAccess.BuildConnectionString();
        smAccess.getSchemaTable();

        foreach (DataRow schRow in smAccess.SchemaTable.Rows)
        {
            string strTablename = schRow["TABLE_NAME"].ToString().Trim('\'');

            DataTable dt = smAccess.GetTableByName(strTablename);
            bool result = SM.ChangeTableStructure(ref dt);

            if (result == true)
            {
                SM.InsertToSQLUsingSQLBulk(dt, con);
            }
        }
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ