我有一个.mdb
包含多个表的MS Access文件,例如
表名:
UserLog_1_2019
UserLog_2_2019
User_Log_3_2019
每个月自动生成新表。
我想使用 SSIS 将上述动态表导入 SQL Server。如何实现这个场景?
谢谢,劳伦斯 A
在这个答案中,我将提供两种方法来实现这一目标:
您必须将 Access 表列表放入 System.Object 类型的变量中,然后使用 Foreach 循环容器遍历表名称。有许多提供详细信息的链接,例如,您可以参考以下 SO 答案,它可以为您提供一些见解:
最近我在 Git-Hub 上启动了一个新项目,这是一个使用 C# 开发的类库。您可以使用它使用架构映射方法将表格数据从 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] 删除。
我来说两句