我有一个古老的系统,它使用 Access 97 数据库来存储信息。我想每天将 90 多个表中的数据复制到 SQL Server 2008 数据库中。我已经有了 SS2008 中定义的表。
有一个同样古老的 DTS 作业,每个表都有一个单独的 box-line-box。我宁愿使用用代码编写的更易于维护的方法,而不是行和框。(是的,我知道 SSIS 行和框被翻译成 XML,但这对我来说读和写有点困难。)
我无法使用 Linked Server 或 OPENROWSET,因为我的 SS2008 服务器作为 64 位进程运行,因此 OLEDB Jet 驱动程序不可用。OLEDB MSOffice ACE 12.0 驱动程序是 64 位的,但它不应该与数据库服务器一起使用,因为它不是线程安全的(根据 Microsoft)。此外,尽管进行了广泛的研究,但我无法让它在 SS2008 中工作(“找不到可安装的 ISAM”)。我可以在 SSIS 等 32 位程序中使用 OLEDB Jet 读取 Access 表。
因此,我正在寻找一种现代的、非盒装式的、优雅的 32 位解决方案来将表从 Access mdb/mdw 文件复制到 SS2008。
我可以这样做:
- 单个 T-SQL 脚本
- 一些 C# 的东西,它进行自省以确定表结构,然后为每个表执行 SQL
- 一些神奇的“将每个表从这个 OLEDB 复制到那个 SQL Server”包
这个问题有几个关闭的副本(定期将访问数据库复制到 SQL 服务器,将访问表迁移到 SQL Server - 初学者),但没有一个处理使 OPENROWSET/Linked Server 成为非选项的 32 位限制。