MS Access 无法在创建表查询时设置主键

MS Access 无法在创建表查询时设置主键

我正在使用 MS Access 2016,我的数据库中有一个表,它通过 ODBC 连接链接到外部源。数据来自 MS Excel。我创建了查询并链接到宏。它运行正常,但它删除了上一个表并删除了我设置的主键。这是我的 Sql 查询:

SELECT AllStaff.NAMEID, AllStaff.USERNAME, AllStaff.DEPARTMEN,
    AllStaff.Lastname, AllStaff.Firstname, AllStaff.RFCARDNUMB, 
    AllStaff.[PERSONAL R], AllStaff.VENDOR INTO AllStaff1
FROM AllStaff
WHERE (((AllStaff.NAMEID) Is Not Null));

因此我想将 NAMEID 设置为主键,添加值后它将保持主键状态。提前致谢

答案1

INSERT INTO ... SELECT不需要SELECT ... INTO

官方语法INSERT INTO target [(field1[, field2[, …]])] [IN externaldatabase] SELECT [source.]field1[, field2[, …] FROM tableexpression

尝试:

INSERT INTO AllStaff1 (AllStaff.NAMEID, AllStaff.USERNAME, AllStaff.DEPARTMEN, 
    AllStaff.Lastname, AllStaff.Firstname, AllStaff.RFCARDNUMB, AllStaff.[PERSONAL R], 
    AllStaff.VENDOR)
select AllStaff.NAMEID, AllStaff.USERNAME, AllStaff.DEPARTMEN, AllStaff.Lastname, 
    AllStaff.Firstname, AllStaff.RFCARDNUMB, AllStaff.[PERSONAL R], AllStaff.VENDOR
FROM AllStaff
WHERE (((AllStaff.NAMEID) Is Not Null));

这不会删除表,并且应该会保留主键。来自上述 MS 链接的警告:

如果目标表包含主键,请确保将唯一的非空值附加到主键字段;如果不这样做,Microsoft Access 数据库引擎将不会附加记录。

相关内容