将数据从 Access 导入 SQL Server 的正确方法?

Posted

技术标签:

【中文标题】将数据从 Access 导入 SQL Server 的正确方法?【英文标题】:Proper way to Import data from Access to SQL Server? 【发布时间】:2012-12-11 18:44:56 【问题描述】:

我正在寻找正确的方法,在 SQL Server 的 T-SQL(我认为就是这样)代码中或使用另一种语言,将数据从 Microsoft Access MDB 数据库导入新的 SQL Server 数据库。

现在,通常我只是将其导入。问题是我正在编写一个 .SQL 脚本(如果需要,我可以使用另一种技术)来完成所有这些工作,因为这需要相当定期地完成。可能每周至少一次,一年大约持续 5 个月。

为了离题一点,我想实现一个单一的数据库并使用类似 DatabaseID 字段的东西来区分单独的源数据库,但是在那里被推翻的权力。

我以前使用 SQL Server Management Studio 2012 和 SQL Server 2008,运行 T-SQL(在生产机器上),效果很好。我现在已经迁移到带有 SQL Server 2012(用于开发)的本地 SQL Server Management Studio 2012,过去可以工作的代码不再存在了。

这个代码是以前工作的:SELECT * INTO [dbo].[Controls] FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Show.mdb; Jet OLEDB:Database Password=BobSaget')...[Control] 为了安全起见,密码已被混淆......

这可能是一个草率的解决方案。理想的方式是什么?

提前致谢!

【问题讨论】:

您遇到了什么错误?您是否安装了所有驱动程序? Msg 7302,级别 16,状态 1,第 73 行无法为链接服务器“(null)”创建 OLE DB 提供程序“MSDASC”的实例。 我可能缺少哪些驱动程序?谢谢! 我不知道您需要的驱动程序,但如果它在一台机器上工作而不是在下一台机器上工作,这可能是问题。 哎呀,我也忘了提到在同一个 .SQL 脚本中我做了很多操作,比如添加新表,向没有它们的表添加主键,清理一些数据...这是我要坚持使用 .SQL 脚本的另一个重要原因。 【参考方案1】:

我建议使用 Microsoft 的 SQL Server Migration Assistant for Access。

SQL Server 迁移助手 (SSMA) 是 Microsoft 提供的免费支持工具,可简化从 Access 到 SQL Server 的数据库迁移过程。 SSMA for Access 自动将 Microsoft Access 数据库对象转换为 SQL Server 数据库对象,将对象加载到 SQL Server,然后将数据从 Microsoft Access 迁移到 SQL Server。

SSMA for Access v5.2 旨在支持从 Microsoft Access 97 及更高版本迁移到 SQL Server 2005、SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 和 SQL Azure 的所有版本。

你可以找到它here。

迁移后您可能需要修复结构,因为它往往会过度夸大许多数据类型。

【讨论】:

是的,我想您可能错过了我指出我希望它成为脚本类型解决方案的部分。 Turn-Key 如果你愿意的话。 :P @The1nk 在我看来,这是正确的导入方式。您可以设置 ODBC 连接并编写自定义 SQL。 是的。这可能是正确的方法。 :( 基本上,我正在编写这个糟糕的应用程序(功能蠕变导致它大量膨胀,而且迫在眉睫的截止日期不允许我重写基础架构)。我正在寻找一种易于委托给非程序员的解决方案,最终用户,在应用程序中创建新数据库。使用此工具对他或她来说可能难以管理。【参考方案2】:

您是否在 MSDANITIALIZE 上检查过您的 DCOM 安全性?

我在迁移到 SSMS 2012 的本地实例时遇到了这个问题。

http://blogs.msdn.com/b/dataaccesstechnologies/archive/2011/09/28/troubleshooting-cannot-create-an-instance-of-ole-db-provider.aspx

【讨论】:

进行了所有这些更改.. 必须在底部做 RegEdit 注释以允许自己编辑它们。还是没有骰子。我将尝试重新启动并再试一次,看看权限是否尚未生效。如果它有效,我会更新。谢谢!

以上是关于将数据从 Access 导入 SQL Server 的正确方法?的主要内容,如果未能解决你的问题,请参考以下文章

自动将新数据从 MS Access 数据库导入 SQL Server

从 Access 导入 SQL Server

如何将 accdb 数据库从 Access 导入 SQL Server 2019?

使用 ColdFusion 将 Access 数据导入 SQL Server

如何解决将 Access 数据导入 SQL Server 的身份问题

自动将数据从 Access 插入 Sql server