【问题标题】:Create Table Syntax Error - MS Access, SQL view创建表语法错误 - MS Access,SQL 视图
【发布时间】:2013-02-19 18:17:06
【问题描述】:

我不断收到 CREATE TABLE 语法错误,但我没有看到错误!是什么导致了错误?

我的 SQL:

CREATE TABLE my_employee
(
employee_id INTEGER PRIMARY KEY NOT NULL,
first_name VARCHAR(25) NOT NULL,
last_name VARCHAR(30) NOT NULL,
address VARCHAR(10) NOT NULL,
birthdate DATE,
salary NUMERIC(8,2) DEFAULT 15000,
marital_status CHAR(1)
);

【问题讨论】:

  • 错误信息是否为您提供更多信息?
  • 不,只是简单的“CREATE TABLE 语法错误”

标签: sql ms-access ms-access-2010


【解决方案1】:

由于您的 DDL 语句包含 DEFAULT,因此您必须使用 ADO 执行它。我将您的语句加载到一个字符串变量中,并像这样从 Access 2007 执行它:

CurrentProject.Connection.Execute strSql

salary 字段是十进制,精度为 8,小数位数为 2,默认为 15000。

DEFAULT 是 Jet 4.0 添加的 Access SQL 功能之一。这些功能不适用于从 DAO 执行的语句。如果您使用 Access 的查询设计器来创建和执行语句,那么您使用的是 DAO。如果您使用CurrentDb.Execute,则相同。但是CurrentProject.Connection是一个ADO对象,所以它可以.ExecuteJet 4.0的特性。

注意NOT NULLPRIMARY KEY 之后不是必需的,因为PRIMARY KEY 暗示NOT NULL。但是PRIMARY KEY NOT NULL 不会触发错误。只要您从 ADO 执行该语句,它就可以像您最初编写的那样工作。

【讨论】:

  • LOL 我是一名学生,老师正在向我们展示 Access 的基础知识,他告诉我使用 DEFAULT。但不幸的是,由于项目的边界,我只能从 DAO 执行。不过,您找到了答案,所以我赞成!谢谢!
【解决方案2】:

嗯,我在使用 Ms Access 2007 时遇到了同样的问题,但后来我解决了。
这是因为实际上出于安全原因,默认情况下禁用了某些功能。
当它显示syntax error 时,您可以在菜单栏的某处或底部看到消息:Some Features Are Disabled For Security Reasons...
单击消息,然后继续启用更多功能。

【讨论】:

    【解决方案3】:

    正如 HansUp 所说:DDL 中的“默认”在这里不起作用。作为替代方案,您可以先创建没有默认值的表,然后通过 TableDef 添加默认值:

    CurrentDb().Execute "create table my_employee ..."
    CurrentDb().TableDefs("my_employee").Fields("salary").DefaultValue = 15000
    

    【讨论】:

      【解决方案4】:

      您的问题出在您的 PRIMARY KEY 声明中

      CREATE TABLE my_employee
      (
      employee_id INTEGER NOT NULL,
      first_name VARCHAR(25) NOT NULL,
      last_name VARCHAR(30) NOT NULL,
      address VARCHAR(10) NOT NULL,
      birthdate DATE,
      salary NUMERIC(8,2) DEFAULT 15000,
      marital_status CHAR(1),
      PRIMARY KEY (employee_id)
      );
      

      【讨论】:

      • 我之前尝试过 - 不幸的是我仍然遇到语法错误
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多