Sql ms access中的检查约束
我试图在ms access(SQL视图)中执行此语句,但这在检查约束和数值(3,2)上显示了一个错误。。当我从numeric中删除(3,2)并删除最后2个constriant检查时 这将成功执行。。。但我想在表中添加最后一个检查约束。。当我再次添加时,这将显示一个错误Sql ms access中的检查约束,sql,constraints,ms-access-2007,check-constraints,Sql,Constraints,Ms Access 2007,Check Constraints,我试图在ms access(SQL视图)中执行此语句,但这在检查约束和数值(3,2)上显示了一个错误。。当我从numeric中删除(3,2)并删除最后2个constriant检查时 这将成功执行。。。但我想在表中添加最后一个检查约束。。当我再次添加时,这将显示一个错误 CREATE TABLE COMPUTER( SerialNumber Int NOT NULL, Make Char(12)
CREATE TABLE COMPUTER(
SerialNumber Int NOT NULL,
Make Char(12) NOT NULL,
Model Char(24) NOT NULL,
ProcessorType Char(24) NULL,
ProcessorSpeed Numeric(3,2) NOT NULL,
MainMemory Char(15) NOT NULL,
DiskSize Char(15) NOT NULL,
CONSTRAINT COMPUTER_PK PRIMARY KEY(SerialNumber),
CONSTRAINT MAKE_CHECK CHECK(Make IN ('Dell', 'Gateway', 'HP', 'Other')),
CONSTRAINT SPEED_CHECK CHECK(ProcessorSpeed BETWEEN 1.0 AND 4.0)
);
我该怎么办?我有MS ACCESS 2007请尝试使用VBA/ADO运行创建表,即在Visual Basic编辑器中:
Sub CreateMyTable()
Dim cnn As New ADODB.Connection
Set cnn = CurrentProject.Connection
cnn.Execute ("CREATE TABLE ... plus the rest of your create here")
Set cnn = Nothing
End Sub
令人遗憾的是,使用Access SQL视图可以定义的内容与通过VBA/ADO可以定义的内容之间存在不一致。在这种情况下,
Numeric(3,2)
在accesssql视图中不起作用,我认为约束也不起作用。我假设您已将数据库选项设置为SQL-92 ANSI兼容。我认为MS Access在MS Access 2013中引入了约束。@GordonLinoff我也在MS Access 2013上尝试过,但出现了相同的错误。