我需要自动从Access(2003)迁移到SQL Server DB(2005或2008)。升迁应该作为构建过程的一部分自动完成。
我需要这个,因为有2个版本的软件,一个用户富客户端和一个Web版本。 Access DB用于单个用户以最大限度地减少设置工作,SQL Server用于提高性能并与许多同时用户进行扩展。 Access应该是“主要”DB,这意味着开发人员在Access DB中进行更改,并且这些更改将在构建过程中传播到SQL Server。会发生许多变化,因此不能手动执行此操作。
我是微软世界的新手,所以我不知道适合的工具。我可以使用哪些工具以及如何使用?我知道怎么做(通过点击)与升迁助手。也许我可以以某种方式自动化?
提前感谢您的回答。 干杯, ·阿尔
答案 0 :(得分:2)
为什么不为Access数据库使用SQL Server后端?然后只进行一次更改,并且所有更改都是同步的。
答案 1 :(得分:0)
这里的问题是你试图对两个不同的系统进行精通。
如果可以在Access中完成所有设计更改,那么您可以简单地将其大小调整为sql server。这里的问题是你需要修改现有的sql server数据库吗?而且,随着时间的推移,你需要这个吗?升级访问数据库将使新版本升级到sql server,但它对现有的sql server数据库没有帮助。
如果您需要随着时间的推移对BOTH系统和现有系统上的表进行更改,那么我会向访问开发人员声明对表的所有更改必须写为ddl sql。然后,您可以使用Access上执行的ddl进行更改。开发人员必须在那点采取相同的ddl并在sql端运行它。可能需要稍作修改。他们修复它在sql server上运行。那么,你最后得到两个脚本。一个用于sql server,另一个用于Access。在访问的情况下,您可以编写几行代码来读取和处理ddl的文本文件。 (相同的代码可用于所有脚本)。
这样,您就为每次升级构建了一组等效的更改。因此,根本不允许将设计更改直接发送到访问表。如果您允许使用表设计器进行设计更改,那么您将遇到大麻烦,因为您现在不知道需要将哪些更改转移到SQL Server。
但是,作为更好的推荐方法,我建议表设置更改在sql server中首先完成。原因是sql visual studio工具中的表设计器允许将刚刚进行的更改编写到剪贴板(简单的右键单击)。另一个原因是桌面设计师非常像访问一个。因此,即使对于使用sql服务器经验很少的访问开发人员来说,这也很容易。因此,右键单击“脚本更改为剪贴板”将为sql server创建需要更改脚本(他们会将其保存到sql server的文件中)。然后他们拿走ddl,并在访问端运行它。原因是ddl可能需要一些轻微的MOD用于访问(但是,他们不必编写ddl语句)。所以,这意味着ddl会为它们编写。这意味着你知道sql server ddl是正确的。然后他们只需要使用该ddl并再次使用来更改访问表。 ddl可能需要对访问进行轻微更改,但这很好,因为他们需要更改表,然后运行并修复此问题,直到进行简单的表更改。因此,这个脚本化的ddl随后将被保存用于访问更新到文件中。 ddl脚本可能需要对访问进行轻微修改,所以我认为这种方法是最好的。只要这个被改变/固定,你就可以了。
因此,经过一段时间的变化,最终会有两个脚本保持两个系统的更改同步。
如果您不需要更改现有的sql和access数据库,那么只需让访问者拥有它,然后只需一次性将整个数据库的大小调整到sql server即可。
我无法真正考虑上述两个极端之间的任何其他方法。
您可以让用户进行访问更改,然后转到sql server以在sql表设计中进行更改,然后保存sql server更改脚本。但是,这不会为您提供访问端的更改脚本。如果访问端不需要更改脚本,那么这将非常有效,因为您将获得一个sql server更改脚本。
以上就是我如何解决这个问题而且非常可行......