如何将Microsoft Access文件转换为SQL Server数据库?

9
我想知道如何将一个Access数据库文件转换成SQL Server(.mdf文件)数据库?

6
MDF是SQL Server的文件类型。你可能需要导入而不是转换。 - Soner Gönül
启动一个AccessDB和MSSQL实例并复制数据,比直接编辑文件要容易得多。 - Liath
4个回答

12

MS Access的“Upsize向导”已于2012年停止使用。现在建议使用SQL Server Migration Assistant(SSMA)。参考:https://accessexperts.com/blog/2013/01/30/access-2013-is-here-but-wheres-the-sql-server-upsizing-wizard/

然而,正如Johnny Bones所指出的那样,我发现创建一个新的空SQL Server(2012)数据库并导入数据相对容易:

SQL Server Management Studio,右键单击新创建的数据库| 任务 | 导入数据-> SQL Server导入向导

  • 我选择了“Access Database Engine”而不是“Jet Database Engine”,原因只是我猜测Jet更老旧。我的项目是一次性的,你可能需要研究它们之间的区别。
  • 我清除了Access查询(视图),只导入了表。
  • 到目前为止,看起来所有内容都已成功导入。

1
这是当前的链接(2017年):SQL Server 迁移助手 - Olivier Jacot-Descombes
从SSMS导入比下载SSMA、安装和所有的麻烦要容易得多。感谢您的建议。 - SanthoshM

7
简单的答案是:您无法将Access数据库“转换”为SQL数据库。但是,您可以将Access数据库(仅限表)导入到SQL中。请记住,SQL是一个真正的数据库,因此不包含前端或GUI创建机制。您仍然需要Access(或C#或VB或其他前端构建器)来创建界面。
您可能已经知道,在SQL Server中,查询称为视图,模块称为存储过程。如果您计划将所有内容驻留在服务器端,则需要相应地转换Access查询和模块。
实际上将Access表导入到SQL Server非常容易,您只需在服务器上创建一个数据库,右键单击数据库名称,然后选择任务->导入数据。然后,您将选择Microsoft Access作为数据源。其余部分应该很容易理解。

1
SSMA也可以将查询作为视图导入。 - Olivier Jacot-Descombes

2
JonnyBones写了一个很好的完整答案。其他人提出了可能有效的工具建议。然而,SQL Server Migration Assistant(SSMA)现在可能是最好的选择。 (请参阅thisYouTube视频以帮助理解一些要克服的问题并说明如何使用SSMA。

在考虑使用其他可能做得更多的工具之前,您应该找出为什么要使用它们而不是SSMA。从这个YouTube视频开始了解。

请注意,MS Access Upsizing向导曾经很棒,但现在已停止使用,并且在MS创建出一个像样的SSMA版本之前有一段时间间隔,这就是这些其他工具出现的时候和原因。

SSMA应该可以满足您的需求。

有一些访问事项无法移动到SQLServer,还有一些可以。

例如,Access触发器不会。Access表约束会,Access布尔数据类型也会 - 但需要做一些工作。该视频将很好地解释大部分问题。

Harvey


1
你可以尝试使用Upsize向导,或者复制SHOW TABLE DATA中的表内容,并将其粘贴到与源表具有相同结构的目标表中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接