将基于MS Access的应用程序迁移到SQL Server 2008

时间:2014-05-08 10:41:53

标签: sql sql-server ms-access

我目前在一家中型公司做实习生。我的主要工作是开发一个Java应用程序,该应用程序强烈依赖于具有大约150个表和200个查询的MS Access数据库。 现在我已经完成了,我被告知从公司拥有许可证的Access数据库迁移到SQL Server 2008会很不错。

我已经尝试过这样做,并且只知道我的任务有多难。但我一直坚持到目前为止,我设法:

  • 发现SQL Server Migration Assistant for Access是最佳工具(可从MS获得)
  • 我已将所有dbs收集到一个文件中
  • 在SQL SMAA报告的帮助下,我使用密钥更新了所有表,并将其中大多数更新为不可为空的
  • 我现在能够移动所有表格(我知道)
  • 完成了一些测试并设法手动转换了大约50个查询,另有30个SMAA能够转换为视图

现在大约有10%的查询对我来说真的很难转换,其中一些可能最终会重复代码以避免不兼容。 问题在于它们的设计方式(很多都采用多个表列,将它们与SELECT查询中的列连接起来......然后在另一个查询中使用相同的重复 - 创建混乱且难以转换的链)和另一个问题是我以前没有数据库经验,找不到资源来帮助我进行斗争几乎是不可能的。没有关于SQL的书有帮助,因为我认为我的问题太具体了。

所以我正在致力于帮助我找到最佳行动方案。我想到了这些可能的情况:

  • 我继续,可能会创建一些SQL函数和程序的怪物,它可能会WERK
  • 向我的主管解释继续进行完整迁移是不可行的。建议将数据移动到服务器并单独保留查询,以便它们与SQL表一起使用。 (这是明智的吗?我的主管希望提供更可靠的后端,强大的功能以及任何额外的性能提升)
  • ???

我应该补充说,我有大约4-5个月的时间,之后我的实习结束了。我将不得不担心以后让应用程序工作。还有其他一些小项目建议给我,我可以做(我可能会更感兴趣),但这个项目是优先考虑的。

1 个答案:

答案 0 :(得分:1)

你可能会过度思考这种可怕的事情。在MS Access中,SELECT查询(在功能上)与SQL Server视图相同。将这样的查询转换为视图应该是一项直接的工作。

(我想应该提到的是,Access Query允许将参数嵌入到查询中,而SQL Server View则不会。但是,由于这是关于访问Access的Java应用程序,我猜这是赢了&# 39; t apply。如果不是,请告诉我。)

UPDATE和INSERT可能需要解析查询,以便SELECT部分​​替换为SQL Server下的View,如果这些是您所说的10%之一。但这也不应该太具挑战性。

如果有的话,VBA代码和Macros可能会遇到更困难的事情,但似乎你已经幸运了。

所以,我建议你继续将它们变成视图,至少把它变成一个关于SQL Server的学习机会。我相信一旦你开始这样做,你就会弄清楚如何理清这些难以破解的坚果。