ALTER TABLE tblInvoices ADD CONSTRAINT CheckAmount CHECK (Amount > 0)
注意: 检验性约束语句只能通过Jet OLE DB provider和ADO来执行,在Access SQL View的用户界面中使用将返回错误信息。而且,要删除一个检验性约束,也必须在Jet OLE DB provider 和ADO中执行DROP CONSTRAINT语句。另外,如果用户已经定义了一个检验性约束: (1) 在Access的用户界面中并不会显示为一个合法性规则,(2) 用户也不能在该界面中定义合法性文本的属性,否则将给出一般性错误信息,(3) 在用户通过ADO使用DROP CONSTRAINT语句之前,不能够通过access的用户界面或者在代码中删除数据表。
ALTER TABLE tblInvoices ADD CONSTRAINT FK_tblInvoices FOREIGN KEY NO INDEX (CustomerID) REFERENCES tblCustomers (CustomerID) ON UPDATE CASCADE ON DELETE CASCADE
注意: 快速外键语句只能通过Jet OLE DB provider 和 ADO来执行。在access SQL View的用户界面中使用将返回错误信息。而且,要删除一个快速外键,也必须在Jet OLE DB provider 和ADO中执行DROP CONSTRAINT语句。
TEXT(文本) TEXT, TEXT(n), CHAR, CHAR(n), ALPHANUMERIC, ALPHANUMERIC(n), STRING, STRING(n), VARCHAR, VARCHAR(n), NTEXT(n), NCHAR, NCHAR(n), CHAR VARYING, CHAR VARYING(n), CHARACTER VARYING, CHARACTER VARYING(n), NATIONAL CHAR, NATIONAL CHAR(n), NATIONAL CHARACTER, NATIONAL CHARACTER(n), NATIONAL CHAR VARYING, NATIONAL CHAR VARYING(n), NATIONAL CHARACTER VARYING, NATIONAL CHARACTER VARYING(n) 最多可以有255个字符,每个字符两个子节(如果不进行压缩)。
虽说上面的SQL语句也可以通过Jet OLE DB provider和 ADO来执行,但还是有一些其他的TEXT 和MEMO 数据类型的不同定义只能通过Jet OLE DB provider 和ADO来执行。
CREATE TABLE tblCodeTextDataTypes Field1_NTEXT NTEXT, Field2_NTEXT25 NTEXT(25), Field3_NCHAR NCHAR, Field4_NCHAR NCHAR(25), Field5_VARYING CHAR VARYING, Field6_VARYING CHAR VARYING(25), Field7_VARYING CHARACTER VARYING, Field8_VARYING CHARACTER VARYING(25), Field9_NATIONAL NATIONAL CHAR, Field10_NATIONAL NATIONAL CHAR(25), Field11_NATIONAL NATIONAL CHARACTER, Field12_NATIONAL NATIONAL CHARACTER(25), Field13_NATIONAL NATIONAL CHAR VARYING, Field14_NATIONAL NATIONAL CHAR VARYING(25), Field15_NATIONAL NATIONAL CHARACTER VARYING, Field16_NATIONAL NATIONAL CHARACTER VARYING(25))
注意: 在上面的SQL语句中列示的这些数据类型只能通过Jet OLE DB provider 和ADO来执行,在Access SQL View的用户界面中使用将导致错误信息。还要注意如果通过Jet OLE DB provider和 ADO创建了一个TEXT数据类型的域,则通过access用户界面看到的将是MEMO的数据类型。
Unicode压缩
现在在Microsoft Jet 4.0 数据引擎中,所有的TEXT数据类型都是以两个字节的统一编码形式存储的。它取代了前面版本中采用的多字节字符集(Multi-byte Character Set ,MBCS)格式。虽然双字节的格式需要更多的空间来存储每个字符,但可以定义使用TEXT数据类型的自动进行压缩。
在用户使用SQL建立的TEXT的数据类型时,双字节编码的压缩属性缺省设置为NO,如果需要将该属性设置为Yes,用户可以在定义域的时候使用WITHCOMPRESSION (或者 WITH COMP)关键字。
下面的CREATE TABLE 语句将创建一个新的顾客表,这里将双字节编码的压缩属性设置为Yes。
CREATE TABLE tblCompressedCustomers ( CustomerID INTEGER CONSTRAINT PK_tblCompCustomers PRIMARY KEY, [Last Name] TEXT(50) WITH COMP NOT NULL, [First Name] TEXT(50) WITH COMPRESSION NOT NULL, Phone TEXT(10), Email TEXT(50), Address TEXT(40) DEFAULT Unknown)
这一次种子值和增加值都指定了,则开始值时10,每次将加5。上面的SQL 语句也可以通过Jet OLE DB provider 和 ADO执行,另外还有counter 数据类型的另一种形式,只能通过Jet OLE DB provider 和 ADO来执行,即IDENTITY 关键字,它和SQL Server的 IDENTITY 数据类型是相兼容的。