使用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
是否保留。