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

时间:2012-12-11 18:44:56

标签: sql-server tsql ms-access

我正在寻求正确的方法,在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]密码已经过模糊处理以确保安全...

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

提前致谢!

2 个答案:

答案 0 :(得分:0)

我建议使用Microsoft的SQL Server迁移助手进行访问。

  

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

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

答案 1 :(得分:0)

您是否在MSDAINITIALIZE上检查了DCOM安全性?

移动到SSMS 2012的本地实例时遇到此问题。

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