问题描述
我正在尝试在ms访问(sql视图)中执行此语句,但是当我从数值中删除(3,2)并删除最后2个约束时,这显示了检查约束和numeric(3,2)..上的错误然后检查 这将成功执行...但是我想在表中添加最后一个检查约束。当我再次添加时,这将显示错误..
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
解决方法
尝试在Visual Basic编辑器中使用VBA / ADO运行CREATE TABLE:
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)
在Access SQL视图中将不起作用,我也不认为约束也将起作用。我假设您已将数据库选项设置为与SQL-92 ANSI兼容。