我试图插入select
语句,但我收到的错误是我syntax error
声明insert into
。
insert into S2T_BL(note)
SELECT S2T.[work]
FROM S2T;
只需选择合适的作品:
SELECT S2T.[work]
FROM S2T;
即使在没有该列的情况下尝试insert
也可以正常工作,其中desc
不是备忘录数据类型:
insert into S2T_BL(desc)
SELECT S2T.[desc]
FROM S2T;
S2T.[work]
和S2T_BL.note
都是MEMO数据类型,因此我认为问题与数据类型有关。有什么建议吗?
答案 0 :(得分:2)
您的问题实际上不是由于Memo数据类型。相反,问题是因为note
是Jet reserved word。
我使用 note 和工作备注字段创建了 S2T_BL 和 S2T 表。然后将名称 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来检查您的数据库。除了保留/问题名称之外,它还可以警告您可能使Access开发复杂化的其他问题。