【问题标题】:Microsoft Access - CHECK errorsMicrosoft Access - 检查错误
【发布时间】:2018-04-06 17:00:55
【问题描述】:

这些是我们必须使用 SQL 进行编码的要求,并且我们必须在表中进行检查。

我找不到有用的答案 --

CREATE TABLE data
(
data_Name VARCHAR(10) UNIQUE,
data_totals INT,

CONSTRAINT [data_totals_test] CHECK (data_totals between 1 and 5 )
);

错误信息:

syntax error in constraint clause 

如果我这样做

CREATE TABLE data
(
data_Name VARCHAR(10) UNIQUE,
data_totals INT,

CHECK (data_totals between 1 and 5 )
);

或者这个

CREATE TABLE data
(
data_Name VARCHAR(10) UNIQUE,
data_totals INT,

CHECK (data_totals > 1 and data_totals < 5 )
);

在这两种情况下我都会收到错误消息 --

syntax error in field definition 

如果我取出 , 在 INT 之后,我会收到错误消息:

syntax error in Create Table Statement. 

也试过这个:

以这种方式创建表(成功)

CREATE TABLE data
(
data_Name VARCHAR(10) UNIQUE,
data_totals INT
);

尝试使用改变:

alter table data ADD CHECK (data_totals > 1 );

遇到同样的错误:

syntax error in field definition 

请指教。

【问题讨论】:

  • 您是否使用CurrentProject.Connection.Execute 执行这些语句?这是这些类型的语句所必需的。
  • @ErikvonAsmuth 老实说,我不确定这意味着什么。我在一个正在访问的项目中——我正在从 sql 查询窗口中单击运行。
  • @MichaelEvanchik 我确实看到了另一个问题,但在解决方案中没有任何明确或有用的信息,我很抱歉重复发帖,但我坚持这样做

标签: sql ms-access check-constraints check-constraint


【解决方案1】:

试试这个https://support.office.com/en-us/article/customize-design-settings-for-objects-in-your-database-b6e0baa0-15d4-47ae-84c2-e0c46dcea23b

设置为 ANSI 92 SQL

CREATE TABLE data
(
data_Name VARCHAR(10) UNIQUE,
data_totals INT CHECK (data_totals > 1 and data_totals < 5)
);

或者

CREATE TABLE data
(
data_Name VARCHAR(10) UNIQUE,
data_totals INT,
CONSTRAINT CHK_data_totals CHECK (data_totals>1 AND data_totals<5)
);

【讨论】:

  • 还有什么是访问版本,fyi之间是= fyi和不一样
  • 数据保留字?
  • 技术上它是一个 ValidationRule ,让我启动一个虚拟机
  • 谢谢,请用星号标记为答案并按下向上按钮,以便社区了解这是答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多