Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多个访问表导入到一个SQL server表中_Sql_Sql Server_Ms Access - Fatal编程技术网

将多个访问表导入到一个SQL server表中

将多个访问表导入到一个SQL server表中,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我最近收到一个非常旧的access数据库,要转换成SQL server。它是在90年代由其他人完成的,但我有.mdb文件 数据库很旧,但有客户的实际配方数据,我想保留。其结构在单独的表格中,如下所示 桌子 公式 公式000 公式001 公式_002 正如您在上面看到的,有一个标题公式表,其中包含名称、日期、版本等详细信息 表[公式] 有一个单独的附表,其中包含配方表中每个条目的成分,因此有一个名为[Formula_001]的表格,里面有以下列 表[Formula_000]x 100 我不希望所有

我最近收到一个非常旧的access数据库,要转换成SQL server。它是在90年代由其他人完成的,但我有.mdb文件

数据库很旧,但有客户的实际配方数据,我想保留。其结构在单独的表格中,如下所示

桌子

公式

公式000

公式001

公式_002

正如您在上面看到的,有一个标题公式表,其中包含名称、日期、版本等详细信息

表[公式]

有一个单独的附表,其中包含配方表中每个条目的成分,因此有一个名为[Formula_001]的表格,里面有以下列

表[Formula_000]x 100

我不希望所有这些表都通过标题表链接,但我需要将数据转换成新的结构。有数百个这样的表,名为Formula_xxx

我想做的是循环浏览上述数据库中的所有MS access表,但标题表[formulas]除外。我可以删除这一表,使其更简单,并将它们复制到新的主表中,其中有一个带有公式编号的额外列,以确定它来自哪个表。下面的例子

表[配方奶粉成分]


有什么想法吗,伙计们

这让人想起我们最近执行的一项任务,即将11000个Access数据库导入Postgres。在一个访问文件中有多个表,而不是在多个访问文件中有相同的表名,但同样的方法也适用


我们使用了一个通用的SQL脚本处理器免责声明:这是我写的。这是一个Python程序;您可以从或通过运行pip install execsql来获得它。该技术是将所有公式表的名称放入目标数据库中的一个表中,然后使用execsql的COPY metacommand遍历该表,将数据从Access数据库复制到sqlserver。文档的示例13对此进行了说明,不过您可能希望将其修改为复制而不是导入。

如果您如上所示创建表,那么您应该能够编写一些VBA代码来旋转所有“Formula_xxx”表,并将行附加到新表中。这能满足您的需要吗?这样做不是一个坏主意,我可以循环标题表以获得公式表名称,然后分别打开它们,并复制到一个新的手动创建的表中,包括表名作为id。谢谢如果您使用VBA生成SQL“插入”以从“Formula_xxx”中选择记录,并且目标是您的新表,则不需要打开每个表。谢谢,我将签出它
------------------------------------------------

| FORMULA NAME | ID | VERSION | CREATED |

| Formula_000 |  000   |     1     |  01/01/1997

| Formula_001 |  001   |     1     |  01/01/1997

------------------------------------------------
material code | % | 

material 1234 | 025 |    

material 5678 | 075 |  

------------------------------------------------
material code | % | formulaID | 

material 1234 | 025 |    000

material 5678 | 075 |    000

material 1111 | 025 |    001

material 2222 | 075 |    001

------------------------------------------------