数据迁移访问SQL Server

时间:2014-08-21 07:17:41

标签: sql-server ms-access data-migration

我正准备将数据从旧数据库(Access 2007,包含大约30个表)迁移到新的SQL Server 2008数据库结构,并附带大约80个表的附加信息。到目前为止,我已经阅读了一些关于它的内容,但这对我来说是一个全新的领域。因此,我问这个问题。


关于我想要达到的目标的更多细节:

有一个旧的Access数据库,Access接口用作程序。这个数据库从大约10年前的几张桌子开始变小,并且在这个时间点上增长了很多,大约30个 LARGE 表。这个旧数据库面临的问题是大型数据集(1个表中的大型表/多列)。这不仅会降低查询性能,还会限制要收集的数据结构和信息。

结果,设计了一个新的数据库结构。这是一个完全标准化的设计,有超过80个表。事实上,旧数据是相同的,但分散在更多的表(比如说对象)上,这些表中很少有一些关于该对象的额外信息,以前没有收集过。当然,将来也必须记录这些数据,因此将在该数据库上构建一个新的应用程序(前端)。


是否有人有任何关于文献,优秀工具或其他最佳实践的经验或知识,我可以将旧的数据库从旧数据库转移到新的,大型和规范化的设计中?

此时我正在深入研究SSIS和SSMA,但也许有人可以指出我的方向来满足我的特定需求。

提前多多谢谢你。

2 个答案:

答案 0 :(得分:2)

我建议使用SSIS包。在SSIS中,您可以拥有每个源,例如Access和每个目标,例如SQL Server。它使用散装插件并具有良好的性能。

答案 1 :(得分:0)

您可能需要解决的另一件事是错误3622,详情如下: http://support.microsoft.com/kb/190620

基本上,您可能需要检查代码并将选项dbSeeChanges添加到OpenRecordset选项和执行语句

CurrentDb.Execute sSQL, dbFailOnError
Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset)
Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbFailOnError)

CurrentDb.Execute sSQL, dbFailOnError + dbSeeChanges
Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
Set oRst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbFailOnError + dbSeeChanges)