繁体   English   中英

将 MS Access 数据库迁移到 SQL Server 2008 R2

[英]Migrating MS Access Database to SQL Server 2008 R2

我有一个 SQL Server 2008 R2,我想从 MS Access 迁移数据,但是当我尝试使用 SSMA 时,选择 SQL Server 2008 R2 的选项不可用。

请提供任何帮助,SSIS 对我的情况有用吗?

好吧,这实际上取决于您在访问数据库中有多少表和多少关系。

例如,您可以在您的工作站上安装 sql server express 的免费版本,然后进行本地迁移(例如 sql 2017 格式)。

那时,您可以选择编写数据库脚本 - SSMS(sql management studio)的更高版本当然支持 2008。例如:

在此处输入图像描述

所以,不要右键单击数据库并选择“脚本数据库为”,而是从任务菜单中选择“生成脚本”。

由此,我们看到 2008 年仍然可以编写成脚本。

在此处输入图像描述

当然,即使在最新版本的 sql 服务器中,您也可以创建旧版本的数据库。 但是,当您创建数据库的“先前”版本时(比如在最新版本的 sql 服务器中,这只会限制兼容性功能,但不允许您使用或制作备份文件以在先前版本的服务器中恢复) sql 服务器。(sql server 有点讨厌 - 你只能 go 转发数据库 - 强大的功能,但是一旦你移动,你就不能使用也不能创建可以被以前版本使用的备份文件。但是你可以编写脚本到以前的版本。

部分原因在于您使用 SSMAA 花费了多少时间。

如果你按照上面的方法执行 go,那么确保你调整了列映射。 因此,例如,默认情况下 access 中的 datetime 会转换为 datetime2,我不太记得 2008 是否支持 datetime2。 (无论如何,我还是会坚持 datetime)。

因此,即使使用最新的迁移助手,您也可以设置(调整)列映射,最多需要 1 或 2 个更改(例如默认为 datetime 代替 datetime2 列类型)。

获取并设置 sql express local 是反复测试迁移的好方法,因为通常前几次可能会失败,或者不会产生您想要的结果。 这实际上是采用 SSMAA 的另一个重要原因,因为您可以花时间调整和更改一些东西,然后再次运行它,甚至再次运行它。

现在,如果您编写整个数据库(和数据)的脚本,此类文本文件相当大,并且在大多数情况下,您无法使用 SSMS(sql management studio)加载此类脚本,因此请使用命令行 sqlcmd .exe 导入(处理)您使用我在上面概述的脚本向导创建的脚本数据库。 它吐出一个“大”文本文件,可以将其导入 2008。

我的意思是,即使在 2008 年和那个 SSMS 时代,它也有一个导入选项,您可以从访问数据库导入。 但是,当您这样做时,PK 将被删除,索引将被删除,关系也会被删除。

所以,对于 2-5 个表 - 哎呀,只需使用 ssms 导入。

但是,如果您有 40 个表,那么大量的关系呢? 那么是的,这是一项艰巨的工作,然后我会 100% 推荐您使用 Access 迁移助手工具。 (学习需要一点时间——一开始有点混乱,但是一旦你通过了学习曲线,如果你想向上移动很多表,我强烈推荐这个工具,保持 PK 设置,当然还保持相关数据完好无损。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM