将数据从 MS Access 传输到 SQL Server

Posted

技术标签:

【中文标题】将数据从 MS Access 传输到 SQL Server【英文标题】:Transferring data from MS Access to SQL Server 【发布时间】:2021-08-28 15:19:27 【问题描述】:

我有已编入索引但接受重复的 MS Access 表。表已传输到 SQL Server 并链接到 Access。

如何复制接受重复的主键?

【问题讨论】:

关系数据库理论中的主键根据定义是否不允许允许重复...... 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:

您应该考虑使用 SSMA 用于访问的 Sql Server 迁移助手

It can move up tables.
It will move up related data, setup PK columns for you.
It will maintain, and create relationships for you.
It will maintain and create all indexes you have now.

如果您只有几张桌子,比如说 2-5 张桌子?然后确定,只需导入它们并设置您自己的关系和索引。

但是,最近几次将数据从 Access 迁移到 SQL server?有超过 80 个表格 - 以及大量的反应、索引,当然还有 PK 设置。因此,迁移向导可以发送所有表 - 并为您在 SQL 服务器上正确设置所有表。包括PK值,FK值(Foreign Keys(相关表)), 甚至约束在大多数情况下都可以正确上移到 sql server。

很好的是,您可以重新链接 Access 应用程序中的表,并且您现在使用 SQL Server 作为后端数据库。

SSMAA 可以在这里找到:

https://www.microsoft.com/en-us/download/details.aspx?id=54255

【讨论】:

【参考方案2】:

我认为您将“索引”与“主键”混淆了。

“索引”是一种有助于优化查询的结构。索引不必是唯一的。 “主键”是对列的逻辑约束,要求列中的所有值都是唯一的。

听起来您想要做的是将数据导入 SQL 并创建索引以帮助加快查询速度,但该索引不限于唯一。

这是执行此操作的语法。假设我们有一些表 T:

create table T(i int, j int, k int);

我们想在列i 上创建索引以加快查询速度,但i 不是唯一的。为此,我们创建了一个常规(非唯一)索引:

create index MyIndexName on T(i);

通常,我倾向于根据索引的内容来命名索引。因此,在上述情况下,我不会将索引称为“MyIndexName”,而是将其称为 ix_T_i

【讨论】:

以上是关于将数据从 MS Access 传输到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 c#“第 1 行的 SQL 语法错误”将数据从 Ms Access 迁移到 MySQL 工作台

C# Ms-access 从数据库中获取详细信息

如何通过编码将数据从 MS Access 导入 Sql Server [关闭]

将查询从 SQL 服务器复制到 MS Access

使用 Python 将数据从 MS Access 复制到 MS Excel

自动将新数据从 MS Access 数据库导入 SQL Server