Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL的MS Access中带有check约束的常量错误_Sql_Ms Access - Fatal编程技术网

使用SQL的MS Access中带有check约束的常量错误

使用SQL的MS Access中带有check约束的常量错误,sql,ms-access,Sql,Ms Access,我正在使用以下命令创建表: CREATE TABLE Comp ( SerialNumber Number Primary Key Not Null, Make Text(12) Not Null, Model Text(24) Not Null, ProcessorType Text(24) Null, ProcessorSpeed Int Not Null, MainMemory Text(15) Not Null, DiskSize Text(15) Not Null ); 这是可行的,

我正在使用以下命令创建表:

CREATE TABLE Comp (
SerialNumber Number Primary Key Not Null,
Make Text(12) Not Null,
Model Text(24) Not Null,
ProcessorType Text(24) Null,
ProcessorSpeed Int Not Null,
MainMemory Text(15) Not Null,
DiskSize Text(15) Not Null
);
这是可行的,然后我尝试添加约束:

ALTER TABLE Comp
ADD CONSTRAINT CheckSpeed
CHECK (ProcessorSpeed > 0);
返回错误:“CONSTRAINT子句中的语法错误”。 我尝试添加:

CHECK (ProcessorSpeed > 0)

返回到表创建命令,但返回相同的错误。有什么办法可以解决这个问题吗?

您需要在连接上运行,Comp是一个保留字

ss = "ALTER TABLE [Comp] ADD CONSTRAINT CheckSpeed CHECK (ProcessorSpeed > 0)"
CurrentProject.Connection.Execute ss
信息:


中的保留字似乎Access不允许SQL中的
CHECK
约束。文档中只列出了
主键
外键
唯一
约束,我相信这可以通过访问调用“验证规则”来实现:
更改表Comp添加约束检查速度检查(ProcessorSpeed>0)
在Access-2003安装中运行良好,我发现它躺在一台旧电脑上。@Damien_The_unsiver这根本不是真的,我不知道为什么你的评论应该被提升。你甚至可以在MSDN@Remou上找到一篇文章——我确实说过“它会出现…”,而且大多数文档都没有将
CHECK
作为
CONSTRAINT
子句的有效选项。太好了!我唯一没有测试的是
Comp
是否保留。