尝试将Microsoft Access 2007数据库迁移到SQL Server 2014时遇到问题(我不拥有Access数据库,用户只希望将其迁移到SQL Server)。请帮助我解决此问题。
我已经尝试过了。
1.SQL导入/导出向导,用于将数据从Access DB迁移到SQL Server数据库。 2. SSMA迁移工具。 3.还尝试使用以下方法进行操作。
https://www.thoughtco.com/convert-access-database-to-sql-server-1019925
使用SSMA ......它表示Access数据库受工作组策略保护。尽管我提供了它不接受的位置,用户名和密码。
使用SQL Server导入/导出向导:它说您没有使用.mdb
对象的必要权限,并且需要系统管理员或创建此对象的人员为您建立适当的权限。
使用Microsoft Access:它说在执行操作之前先关闭对象。
答案 0 :(得分:2)
好吧,这里有很多问题。
首先,您说的是工作组策略,还是说工作组的安全性?
这里有一个巨大的和珠穆朗玛峰的两者之间的区别。
此外,由于您注意到并提到这是一个mdb文件,因此肯定有可能存在Access工作组安全性,并且该数据库已经存在。
然后我要做的是先删除工作组安全性,然后再迁移到sql服务器。您也许可以使用各种工具来使用工作组安全性,但是将数据库移至非安全的accDB只需2-3分钟。
而且我建议您使用Accdb,因为这是SSMA过去10多年的设计经验。
因此,您在这里没有提到Access的哪个版本,而是假设Access2010。
您需要做的第一件事是确定应用程序或数据文件正在使用的WHICH安全工作组文件。
最简单的方法是查看他们用于启动应用程序的应用程序快捷方式。实际上,如果没有启动表单,则只需启动应用程序(按住Shift键以防止启动表单)。假设您使用ALSO包含工作组文件的快捷方式,那么此时,您将使用正确的工作组文件登录并连接到该mdb数据库。实际上,如果在启动该应用程序时获得用户名和密码登录,那么您就可以确信该数据库正在使用工作组安全性。
此处的关键概念是确保使用与mdb文件匹配的正确的工作组文件(.mdw)。
登录后,当然按住Shift键,那么您应该处于完全访问权限的应用程序UI /界面。此时,您已连接到工作组文件。因此,只需关闭数据库,但不要退出访问。原因是您将保持连接到工作组文件。此时,创建一个新的空白accdb文件。现在,只需将所有数据表从旧的mdb文件导入到您刚刚创建的新accDB文件中(并且仍可以在访问中打开)。因为您仍然连接到工作组文件,所以将所有表从mdb文件导入到AccDb文件中应该没有问题。这里的关键概念是您需要加入,并且是正确的工作组文件的一部分。但是,创建新的accDB文件的行为将不受保护(尽管您仍然连接到工作组文件)。
这时,您可以退出访问。现在重新启动访问权限(您不再与工作组文件建立连接-因此不会出现登录提示。现在快速查看一下表是否包含数据-可能会。
因此,现在您将拥有一个常规且不受保护的accDB文件。此时,您现在可以将数据迁移到SQL Server。我建议使用SSMA,因为它具有大量您需要的功能。您可以尝试使用其他方法,但是SSMA会保留您的索引,更重要的是,迁移到sql server之后,数据之间的关系保持不变。必须重新创建庞大的索引,并建立表关系是一项繁重的工作,只有SSMA才能真正确保在迁移到sql server时所有这些东西完好无损。
还不清楚,除了一些数据表之外,您是否还有表格,代码,报告?
我认为不需要指出表单,报表,代码,VBA不是数据库,而是现在您谈论的是已开发的应用程序。我还避免指出不区分数据,数据库迁移与创建或修复旨在与访问配合使用的应用程序(现在必须与SQL Server配合使用)的区别是多么疯狂。
说句公道话,如果您有进行此类迁移的经验,那么您将确切地知道要查找什么,并且确切地知道使Access应用程序设计为可与mdb文件一起使用以与SQL Server一起使用的要求。取决于应用程序的大小,将决定应用程序部分需要执行多少工作以及需要进行哪些修改。
因此,数据迁移往往很容易,并且使用SSMA之类的工具就非常简单。
但是,现在(轻松)迁移了数据部分,大量的工作开始于使应用程序部分与SQL Server一起使用,为此,您最好具有一些相当不错的访问技能。
还不清楚您是否具有用于VBA代码的表单,报告和MOST重要的mdb文件,因为不仅需要深入研究应用程序代码的技能,而且还需要“源”代码,或者查看和修改表格后面的代码的能力。我问这个问题,因为通常开发人员可能会设置一个特殊的密码,该密码只能让他们修改表单和代码-但每个其他用户只能使用表单等。
从Access到SQL的数据迁移,或者说从Oracle到SQL Server的数据迁移往往很容易。毕竟,您只是移动数据表。
然而,真正的挑战,真正的问题和真正的问题是在将数据移至SQL Server之后,您打算使用哪些工具和软件来处理现在驻留在SQL Server上的数据?
目前尚不清楚这是否只是一个用于迁移某些Access数据表的数据迁移项目?
或者该项目还涉及开发人员(软件),您需要一些可运行的软件来使用SQL Server。用于移动数据的工具是自动化的,并且完全不需要时间。但是应用程序部分和软件部分是手动的,并且劳动强度大,并且需要Access开发人员技能。
答案 1 :(得分:0)
我的情况和你相似。我们拥有的Access数据库是由一家不再营业的公司创建并购买的。如果您要做的只是导入数据(而不是将旧的Access数据库连接到SQL Server),请创建一个新的Access数据库并将其连接到旧数据库。这样做,我能够查看并链接到锁定数据库中的表。从那里,您可以将它们从新数据库导入到SQL。