使用 MEMO 数据类型插入在 Access 中不起作用

Insert into with MEMO data type doesn't work in Access

我正在尝试使用 select 语句插入,但出现错误提示我有 syntax error with insert into 语句。

insert into S2T_BL(note)
SELECT S2T.[work]
FROM S2T;

只是 select 本身就可以正常工作:

SELECT S2T.[work]
FROM S2T;

即使在没有该列的情况下尝试 insert 也能正常工作,其中 desc 不是备忘录数据类型:

    insert into S2T_BL(desc)
    SELECT S2T.[desc]
    FROM S2T;

S2T.[work]S2T_BL.note 都是 MEMO 数据类型,所以我认为问题与数据类型有关。有什么建议吗?

您的问题实际上不是由于 Memo 数据类型引起的。相反,问题是因为 noteJet reserved word.

我创建了 S2T_BLS2Tnote工作 备注字段。然后将名称 note 括在方括号中允许此查询执行而不会出错:

INSERT INTO S2T_BL([note]) SELECT S2T.[work] FROM S2T;

没有方括号...即INSERT INTO S2T_BL(note) SELECT S2T.[work] FROM S2T...如您所报告的,我遇到了语法错误。

保留字是 Access 查询问题的常见原因,因此最好尽可能避免使用它们。当你无法避免它们时,至少要提防它们,这样你才能采取预防措施。如果您不确定哪些词是正式保留的或有其他问题,您可以使用 Allen Browne 的 Database Issue Checker Utility 检查您的数据库。除了 reserved/problem 名称之外,它还可以警告您可能使 Access 开发复杂化的其他问题。