私は次の.mdb
ような複数のテーブルを含む単一のMSAccessファイルを持っています
テーブル名:
UserLog_1_2019
UserLog_2_2019
User_Log_3_2019
毎月、新しいテーブルが自動的に生成されます。
SSISを使用して、上記の動的テーブルをSQLServerにインポートしたいと思います。このシナリオを達成する方法は?
ありがとう、ローランスA
この回答では、これを達成するための2つのアプローチを提供します。
AccessテーブルリストをSystem.Object型の変数に取得してから、Foreachループコンテナを使用してテーブル名をループする必要があります。詳細な情報を提供する多くのリンクがあります。例として、次のSO回答を参照すると、いくつかの洞察が得られます。
最近、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]
コメントを追加