我正在将表从 Access 导入到 SQL Server。 Access中的列ID是自动递增的,但在SQL Server中我必须每次输入ID。重要的是,导入的表中有记录,我想将 ID 更改为 IDENTITY。
我尝试将 ID 更改为 IDENTITY,但它说我必须删除并重新创建表。从 Access 导入后是否可以将 ID 更改为 IDENTITY?
好的,在 SQL Server 中,您需要(大多数情况下)将 PK 列设置为主键,然后将该列设置为自增。
因此,在SSMS设计器中打开SQL Server表,并将ID列设置为PK。
您还想将“身份”设置设置为自动增量。
在这个例子中,我两者都做!
我选择 ID 列,设置为 PK,然后还设置“自动编号”系统(其工作方式类似于 Access 中的自动编号)。
请注意,执行上述操作后,您需要从 Access 重新链接表。
编辑:与 SSMS 必须删除+重新创建表相比,这是不可能的,这存在一些主要的混乱。
SSMS 有一个设置,并将为您完成所有工作。
该设置是这样的,默认情况下会收到一条消息:
Tools -> Options -> Table and Database Designers
如果取消选中该框(防止保存需要重新创建表的更改?
然后您就可以 100% 不受表格设计者的约束来打开、设置或取消设置标识列。
显然,上面的屏幕截图 gif 显示我毫无问题地执行此任务。此类操作确实会保留现有数据。所以,在幕后,是的,SQL Server 正在删除表,重新创建表,并为您移动数据。这是一项具有“一些”风险的手术,但我这样做了很多年,没有出现任何问题。
如果取消选中上面的复选框,则可以相当自由地将标识列添加到相关数据库中。