CREATE TABLE DBF TableName1 [NAME LongTableName] [FREE]
( FieldName1 FieldType [( nFieldWidth [, nPrecision] )] [NULL NOT NULL]
[CHECK lExpression1 [ERROR cMessageText1]]
[AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [DEFAULT eExpression1] [primary key UNIQUE [COLLATE cCollateSequence]]
[REFERENCES TableName2 [TAG TagName1]] [NOCPTRANS]
[, FieldName2 ... ]
[, primary key eExpression2 TAG TagName2 , UNIQUE eExpression3 TAG TagName3 [COLLATE cCollateSequence]]
[, foreign key eExpression4 TAG TagName4 [NODUP] [COLLATE cCollateSequence]
REFERENCES TableName3 [TAG TagName5]] [, CHECK lExpression2 [ERROR cMessageText2]] )
FROM ARRAY ArrayName
参数
CREATE TABLE DBF TableName1
指定要创建的表的名称。TableName1 参数指定表名。TABLE 和 DBF 选项作用相同。
NAME LongTableName
指定表的长名。因为长表名存储在数据库中,只有在打开数据库时才能指定长表名。长名最多可包括 128 个字符,在数据库中可用来代替短名。
FREE
指定所创建的表不添加到数据库中。如果没有打开数据库则不需要 FREE。
FieldName1, FieldType, nFieldWidth, nPrecision
分别指定字段名、字段类型、字段宽度和字段精度(小数位数)。单个表中不能包含 255 个以上的字段。如果一个或一个以上字段允许允许 null 值, 限制减少为 254 个字段。
FieldType 是指定字段数据类型的单个字母。有些字段数据类型要求指定 nFieldWidth 或 nPrecision 或两者都要指定。
下表列出了 FieldType 的值及是否需要指定 nFieldWidth和 nPrecision FieldType nFieldWidth nPrecision 说明
C n – 宽度为 n 的字符字段
D – – 日期型
T – – 日期时间型
N n d 宽度为 n、有 d 位小数的数值型字段
F n d 宽度为 n、有 d 位小数的浮点数值型字段
I – – 整型
B – d 双精度型
Y – – 货币型
L – – 逻辑型
M – – 备注型
G – – 通用型
nFieldWidth 和 nPrecision 不适用于 D、T、I、Y、L、M、G 和 P 类型。对于 N、F 或 B 类型,若不包含 nPrecision,则 nPrecision 默认为零(没有小数位)。如果 B 类型没有包括 nPrecision 参数默认的小数位数是 SET DECIMALS 命令的设置。
NULL NOT NULL
指定字段是否允许 null 值。NULL 允许 null 值, NOT NULL 不允许 null 值。如果一个或一个以上的字段允许 null 值, 表中允许的最大字段数从 255 减少为 254 个。
CHECK lExpression1
指定字段的有效性规则。lExpression1 可以是用户自定义函数。请注意,当追加空记录时,就要检查有效性规则。如果有效性规
则不允许在追加记录中有空字段值,则产生错误。
ERROR cMessageText1
指定当字段规则产生错误时,Visual FoxPro 显示的错误信息。只有当数据在浏览窗口或编辑窗口中做了修改时,才显示信息。
AUTOINC [NEXTVALUE NextValue [STEP StepValue]]
启用字段的 autoincrementing。NextValue 指定开始值并且可以是一个范围从 2,147,483,647 到 -2,147,483,647 之间的正的或负的整数。默认值是 1。可以用表设计器中的字段标签中的 Next Value 微调设置 NextValue。
StepValue 为字段指定增量值并可以是一个正的, 非零的范围从 1 到 255 之间的整型值。默认值是 1。可以可以用表
设计器中的字段标签中的 Step 微调设置 StepValue。
Autoincrementing 值不能为 NULL。
DEFAULT eExpression1
指定字段的默认值。eExpression1 的数据类型必须和字段的数据类型相同。
如果你用 AUTOINC 子句打开了一个字段的 autoincrementing 并指定了一个默认值, Visual FoxPro 保存默认值在表中但不使用它。如果你用 ALTER TABLE - SQL 命令来从字段移去 autoincrementing, Visual FoxPro 使用默认值。
primary key UNIQUE
将此字段作为主索引。主索引标识名和字段名相同。 UNIQUE 为 FieldName1 指定的字段创建一个候选索引。主索引标识或候