从Access导入到SQL Server后如何保留ID的自增功能(在SQL IDENTITY中)?

问题描述 投票:0回答:1

我正在将表从 Access 导入到 SQL Server。 Access中的列ID是自动递增的,但在SQL Server中我必须每次输入ID。重要的是,导入的表中有记录,我想将 ID 更改为 IDENTITY。

我尝试将 ID 更改为 IDENTITY,但它说我必须删除并重新创建表。从 Access 导入后是否可以将 ID 更改为 IDENTITY?

sql-server ms-access auto-increment
1个回答
0
投票

好的,在 SQL Server 中,您需要(大多数情况下)将 PK 列设置为主键,然后将该列设置为自增。

因此,在SSMS设计器中打开SQL Server表,并将ID列设置为PK。

您还想将“身份”设置设置为自动增量。

在这个例子中,我两者都做!

我选择 ID 列,设置为 PK,然后还设置“自动编号”系统(其工作方式类似于 Access 中的自动编号)。

enter image description here

请注意,执行上述操作后,您需要从 Access 重新链接表。

编辑:与 SSMS 必须删除+重新创建表相比,这是不可能的,这存在一些主要的混乱。

SSMS 有一个设置,并将为您完成所有工作。

该设置是这样的,默认情况下会收到一条消息:

Tools -> Options -> Table and Database Designers

enter image description here

如果取消选中该框(防止保存需要重新创建表的更改?

然后您就可以 100% 不受表格设计者的约束来打开、设置或取消设置标识列。

显然,上面的屏幕截图 gif 显示我毫无问题地执行此任务。此类操作确实会保留现有数据。所以,在幕后,是的,SQL Server 正在删除表,重新创建表,并为您移动数据。这是一项具有“一些”风险的手术,但我这样做了很多年,没有出现任何问题。

如果取消选中上面的复选框,则可以相当自由地将标识列添加到相关数据库中。

© www.soinside.com 2019 - 2024. All rights reserved.