求vfp中修改字段长度语句

作者&投稿:微牵 (若有异议请与网页底部的电邮联系)
microsoft visual foxpro中改字段长度~

在foxpro中改字段长度的方法:

方法1,命令语句法,在VFO的命令窗口输入:
MODIFY STRUCTURE
说明:调出表设计器,然后选择你要上传的DBF表,即可按要求修改各字段的长度
方法2,菜单执行法
1.菜单栏---窗口--数据工作期---打开 选择你要上传的DBF表 ---确定
2.数据工作期----属性 --修改---即可在弹出的表设计器中按需修改各字段的长度--确定
或2.菜单栏--显示---表设计器----修改 ---确定
亲 觉得好请采纳 谢谢!

字段名的长度是无法修改的,那是语言所规定的,你要注意在编程序时,一定要避免使用汉字的字段名,那样会极其的不方便,而且容易出一些意想不到的错误,你应该养成使用英语字段名的习惯,而在输出时显示出汉字就行了

ALTER TABLE TableName1 ADD | ALTER [COLUMN] 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] [NOVALIDATE]
或者
ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL | NOT NULL] [SET DEFAULT eExpression2]
[SET CHECK lExpression2 [ERROR cMessageText2]] [ DROP DEFAULT ] [ DROP CHECK ] [ NOVALIDATE ]
或者
ALTER TABLE TableName1 [DROP [COLUMN] FieldName3]
[SET CHECK lExpression3 [ERRORcMessageText3]] [DROP CHECK]
[ADD primary key eExpression3 [FOR lExpression4] TAG TagName2
[, COLLATE cCollateSequence]] [DROP primary key]
[ADD UNIQUE eExpression4 [[FOR lExpression5] TAG TagName3
[ COLLATE cCollateSequence]]] [DROP UNIQUE TAG TagName4]
[ADD foreign key [eExpression5] [FOR lExpression6] TAG TagName4
[ COLLATE cCollateSequence] REFERENCES TableName2 [TAG TagName5]]
[DROP foreign key TAG TagName6 [SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] [NOVALIDATE]
参数
ALTER TABLE TableName1
指定要修改其结构的表名。
ADD | ALTER [COLUMN] FieldName1
指定要添加的字段名。
单个的表中最多可以有 255 个字段。 如果一个或更多的字段允许 null 值, 该限制为 254 个字段。
FieldType [(nFieldWidth [, nPrecision])]
指定新字段或待修改字段的字段类型、字段宽度和字段精度(小数点后的位数)。
参数 FieldType 是表示字段数据类型的单个字符。有些字段类型还需要参数 nFiledWidth 或 nPrecision,或者两者皆要。下表列出了参数 FiledType 的值及其对应参数 nFiledWidth 和 nPression 的取舍情况: 字段类型字段宽度精度说明
Cn–宽度为 n 的字符字段
D––日期
T––日期时间
Nnd宽度为 n 的数值型字段,小数点后保留 d 位
Fnd宽度为 n 的浮点型字段,小数点后保留 d 位
I––整数型
B–d双精度型
Y––货币型
L––逻辑型
M––备注型
G––通用型
P––图象

对于 D、T、I、Y、L、M、G 和 P 型数据,省略参数 nFieldWidth 和 nPrecision。如果对 N、F 或 B 型数据没有给出参数 nPrecision 的值,其的默认值为零。
NULL | NOT NULL
允许或不允许字段为空值。NULL 允许 null 值, NOT NULL 不允许 null 值。如果一个或更多的字段允许 null 值, 表中可以包含的字段从 255 减少到 254。
CHECK lExpression1
指定字段的有效性规则。lExpression1 为逻辑表达式值,可以是用户定义的函数或存储过程。注意:每添加一个空记录时,都将进行有效性检查。
ERROR cMessageText1
指定字段有效性检查出现错误时显示的错误信息。只有在“浏览”或“编辑”窗口中修改数据时,此信息才可能显示。
AUTOINC [NEXTVALUE NextValue [STEP StepValue]]
启用字段的自动增量。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 就不能指定默认值。如果同时指定 AUTOINC 和 DEFAULT 子句 Visual FoxPro 会产生一个错误信息。
primary key | UNIQUE
primary key 创建主索引标识。索引标识与字段同名。UNIQUE 创建与字段同名的候选索引标识。有关候选索引的详细内容,请参阅 设置主索引或候选索引。
COLLATE cCollateSequence
指定一个非默认设置 MACHINE 的比较序列。cCollateSequence 参数必须是一个可用的 Visual FoxPro 比较序列。关于设置比较序列的详细信息, 参见 优化国际化应用程序 和 set collate 命令。
REFERENCES TableName2 [TAG TagName1]
指定与之建立永久关系的父表。
参数 TAG TagName1 指定父表索引标识,关系建立在此父表索引标识基础上。索引标识最长为 10 个字。如果省略 TAG 子句, 关系用父表的主索引关键字建立。如果父表没有主索引, Visual FoxPro 产生一条错误。
NOCPTRANS
防止对字符串或备注字段进行代码页转换。如果表转换到另一代码页,指定了 NOCPTRANS 的字段不进行转换。NOCPTRANS 只能指定字符字段和备注字段。这会创建表设计器中的 Character (binary) 和 Memo (binary) 数据类型。
NOVALIDATE
选用这一选项后,Visual FoxPro 修改表的结构不受表中数据完整性的约束。默认时,Visual FoxPro 改变表结构将受到表中数据的完整性约束。使用 NOVALIDATE 参数将使默认情况无效。
ALTER [COLUMN] FieldName2
指定要修改的已有的字段名。你需要在单个的 ALTER TABLE 命令中包括多个 ALTER COLUMN 子句来修改字段的一个以上的属性。关于 ALTER COLUMN 子句的结构的详细信息, 参见本主题中的示例。
Set Default eExpression2
指定已有字段的新默认值。eExpression2 的数据类型必须与字段数据类型相同。
如果用 AUTOINC 子句来打开了一个字段的 autoincrementing 就不能指定默认值。如果同时指定 AUTOINC 和 SET DEFAULT 子句 Visual FoxPro 会产生一个错误信息。
SET CHECK lExpression2
指字已有字段新的有效性规则。lExpression2 值必须为逻辑表达式,也可以为用户自定义函数或储存过程。
ERROR cMessageText2
指定有效性检查出现错误时显示的错误信息。只有在“浏览”窗口或“编辑”窗口改变数据时,才可能显示此信息。
DROP DEFAULT
删除已有字段的默认值。
DROP CHECK
删除已有字段的有效性规则。
DROP [COLUMN] FieldName3
从表中删除一个字段。删除一个字段的同时也删除了字段的默认值和字段有效性规则。
字段被删除后,索引关键字或引用此字段的触发器表达式将变为无效。在这种情况下,删除字段并不产生错误,但是在运行时刻,无效的索引关键字或触发器表达式将导致错误。
SET CHECK lExpression3
指定表的有效性规则。lExpression3 必须是逻辑表达式,也可以是用户自定义函数或储存过程。
ERROR cMessageText3
指定表的有效性检查出现错误时显示的错误信息。只有在“浏览”窗口或“编辑”窗口中改变数据值时,才可能显示此信息。
DROP CHECK
删除表的有效性规则。
ADD primary key eExpression3 [FOR lExpression4] TAG TagName2
往表中添加主索引,eExpression 指定主索引关键字表达式。
可以用 lExpression4 来指定一个仅符合条件的记录可以显示和访问的筛选表达式。主索引关键字是为匹配筛选条件的记录而在索引文件中创建的。你应该避免使用 FOR 子句来创建主索引; 唯一性主键只强制匹配 FOR 子句中指定的条件的记录。作为代替, 使用带 FOR 子句的 INDEX 命令来创建筛选索引。
如果 lExpression4 表达式可以优化, Rushmore 查询优化何以优化 ALTER TABLE ... FOR lExpression4 命令。为了更好的性能, 在 FOR 子句中使用可优化表达式。详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
TagName2 参数指定主索引标识的名字。索引标识名可以包含多至 10 个字符。如果省略 TAG TagName2, 而且 eExpression3 是一个单一的字段, 主索引标识具有与 eExpression3 中指定的字段相同的名字。
DROP primary key
删除主索引及其标识。因为表只能有一个主关键字,所以不必指定关键字的名称。删除主索引也将删除所有基于此关键字的永久关系。
ADD UNIQUE eExpression4 [TAG TagName3 [FOR lExpression5]]
往表中添加候选索引。eExpression4 指定候选索引关键字表达式,TagName3 指定候选索引标识名。候选标识名最长可为 10 个字符。如果省略参数 TAG TagName3 并且 eExpression4 为单个字段,候选索引标识与 eExpression4 中的指定的字段同名。
可以用 lExpression5 参数来指定一个只能显示和访问符合条件的筛选表达式。候选索引键是为匹配筛选条件的记录而在索引文件中创建的。
如果 lExpression5 表达式可以被优化, Rushmore 可以优化 ALTER TABLE ... FOR lExpression5 命令。为了更好的性能, 在 FOR 子句中使用可优化表达式。详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
DROP UNIQUE TAG TagName4
删除候选索引及其标识。因为表可能有多个候选关键字,所以必须指定候选索引标识名。
ADD foreign key [eExpression5] TAG TagName4 [FOR lExpression6]
往表中添加外部关键字(非主关字)索引。eExpression5 指定外部索引关键字表达式,TagName4 指定外部索引标识名。索引标识名最长为 10 个字符。
可以用 lExpression6 参数来指定一个只能显示和访问符合条件的记录的筛选表达式。外部索引关键字是为匹配筛选条件的记录而在索引文件中创建的。
如果 lExpression6 表达式可以被优化, Rushmore 可以优化 ALTER TABLE ... FOR lExpression6 命令。为了更好的性能, 在 FOR 子句中使用可优化表达式。详细信息, 参见 SET OPTIMIZE 和 用 Rushmore 查询优化数据访问速度。
REFERENCES TableName2 [TAG TagName5]
指定在其上创建了永久关系的父表。使用 TAG TagName5 指定一个已有的索引标识,基于此索引标识建立表与父表的一个关系。索引标识名最长可以为 10 个字符。如果省略参数 TAG TagName5,则使用父表的主索引标识建立关系。
DROP foreign key TAG TagName6 [SAVE]
删除索引标识为 TagName6 的外部关键字。如果省略 SAVE 参数,将从结构索引中删除索引标识。如果加入 SAVE 参数,则不从结构索引中删除索引标识。
RENAME COLUMN FieldName4 TO FieldName5
允许改变表中字段的字段名。FieldName4 指定待更改的字段名,FieldName5 指定新的字段名。
警告 改变表的字段名时一定要小心--索引表达式、字段和表的有效性规则、命令、函数等等可能仍会引用原始字段名。
备注
ALTER TABLE 命令可以用于修改还没有添加到数据库中的表的结构。然而在修改自由表时,如果加入 DEFAULT、FOREIGN KEY、PRIMARY REFERENCES 或 SET 子句,Visual FoxPro 将出现错误。
ALTER TABLE 命令可以通过建立新表头和往表头中添加记录来重建表。例如,改变字段类型或字段宽度。
表经过重建后,将对所有改变了类型或宽度的字段执行字段有效性规则。如果修改了表中所有字段的类型或宽度,将执行表的有效性规则。
如果对已含有记录的表修改其字段有效规则或表有效性规则,Visual FoxPro 将检查新的字段或表有效性规则是否与存在数据相符合,并在发现有不符之处时发出警告。
如果打开了字段的 autoincrementing 则不能在 DEFAULT 子句中指定值或表达式。
要移去 autoincrementing, 用 ALTER TABLE - SQL 来修改 COLUMN 来不包括 AUTOINC 子句。
Autoincrementing 字段的字段验证将保持有效。你可能想用验证来返回一个新的 autoincrementing 值。
当你想修改一个不包含 autoincrementing 字段的表来包含 autoincrementing 字段时, 无论是用 ALTER TABLE 命令或表设计器, autoincrementing 开始于下一个新添加的记录上。表中已有的记录不会从第一条记录用 autoincrementing 值更新。你需要确保结果中不会有冲突发生。
在使用由 CREATE CURSOR 命令创建的 Visual FoxPro 游标时 ALTER TABLE 可能不产生一致的结果。特别是, 你可以创建一个有特点的 Visual FoxPro 游标, 如长字段名, 这通常只在作为数据库容器中的表中才可用。ALTER TABLE 保存一个游标的临时拷贝, 因此适用于自由表的规则也适用, 而且任何要求数据库支持的特点被丢失或修改不可预知的状态。因此, 你通常应该避免在 Visual FoxPro 游标上使用 ALTER TABLE 除非你经过测试并知道结果。
如果省略 NULL 和 NOT NULL, 当前的 SET NULL 命令设置决定字段是否允许 null 值。但是, 如果你省略 NULL 和 NOT NULL 但包括了 primary key 或 UNIQUE 子句, Visual FoxPro 忽略当前的 SET NULL 设置, 并且字段默认为 NOT NULL。
如果 CHECK 子句中指定的有效性规则不允许在新添加的字段中的空的字段值, Visual FoxPro 产生一个错误。
在使用主索引和候选索引的字段中不允许 null 值和重复记录。但是, 如果你用 ADD COLUMN 创建一个支持 null 值的主索引或候选索引 Visual FoxPro 不产生错误。如果你试图输入一个 null 或重复值到使用主索引或候选索引的字段中时 Visual FoxPro 产生一个错误。
注意 带 UNIQUE 选项的 CREATE TABLE – SQL 或 ALTER TABLE – SQL 命令创建候选索引用 (提供它是为了和 ANSI 兼容), 与带 UNIQUE 选项的 INDEX 命令创建的索引是不同的。用带 UNIQUE 选项的 INDEX 命令创建的索引允许重复的索引关键字; 候选索引不允许重复的索引关键字。关于 INDEX 命令的 UNIQUE 选项的详细信息, 参见 index 命令。
如果你修改一个已存在的字段, 而且主索引表达式或候选索引表达式由表中的字段组成, Visual FoxPro 检查字段是否包含 null 值或重复记录。如果是, Visual FoxPro 产生记录并且表不会被修改。
如果表被转换到另一个代码页, 指定了 NOCPTRANS 的字段不会被转换。
示例
示例 1 往表 customer 中添加字段 fax, 并且允许字段有空值。
示例 2 使 cust_id 字段为 customer 表的主关键字。
示例 3 给 orders 表中的 quantity 字段添加有效性规则,使字段 quantity 的值非负。
示例 4 基于表 customer 的关键字 cust_id和表 orders 中的候选关键字 cust_id,建立 customer 和 orders 间的一对多永久关系。
示例 5 删除表 orders 的 quantity 字段的有效性规则。
示例 6 删除表 customer 和表 orders 间的永久关系,但保持 orders 表中的 cust_id 索引标识。
示例 7 添加一个叫做 Fax2 的字段到 Customer 表并防止字段包含 null 值。显示新的表结构。两个 ALTER COLUMN 子句用于允许字段有 null 值并设置字段的默认值为 null 值。注意在单个 ALTER TABLE 命令中的多个 ALTER COLUMN 子句被要求来改变字段的一个以上的属性。然后从表中删除新的字段恢复表到原始状态。
* 示例 1
SET PATH TO (HOME(2) + 'Data\') && Sets path to table.
ALTER TABLE Customer ADD COLUMN Fax c(20) NULL

* 示例 2
ALTER TABLE Customer ADD primary key Cust_id TAG Cust_id
ALTER TABLE Customer ALTER COLUMN Cust_id c(5) primary key

* 示例 3
ALTER TABLE Orders;
ALTER COLUMN Quantity SET CHECK Quantity >= 0;
ERROR "Quantities must be non-negative"

* 示例 4
ALTER TABLE Orders;
ADD foreign key Cust_id TAG Cust_id REFERENCES Customer

* 示例 5
ALTER TABLE Orders ALTER COLUMN Quantity DROP CHECK

* 示例 6
ALTER TABLE Orders DROP foreign key TAG Cust_id SAVE

* 示例 7
CLEAR
ALTER TABLE Customer ADD COLUMN Fax2 c(20) NOT NULL
DISPLAY STRUCTURE
ALTER TABLE Customer;
ALTER COLUMN Fax2 NULL;
ALTER COLUMN Fax2 SET DEFAULT .NULL.
ALTER TABLE Customer DROP COLUMN Fax2
下面示例使用 NOCPTRANS 来防止转换到不同的代码页。示例创建一个名为 "mycursor" 的包含两个字符型字段和两个备注字段的临时表。第二个字符型字段 "char2" 和第二个备注字段 "memo2" 包含了 NOCPTRANS 来防止转换。
CREATE TABLE mytable (char1 C(10), char2 C(10) NOCPTRANS,;
memo1 M, memo2 M NOCPTRANS)

alter table 表名 alter 字段名 字段类型 (字段长度)
例:修改xsb.dbf中的姓名 c(6)长度为8
alter table xsb alter 姓名 c(8)

修改表结构的命令为:modify structure(modi stru)
此时会弹出表设计器,可以手动修改字段宽度
在细读过《VFP程序设计》的表这一章后,没有发现纯命令修改字段宽度的。

modqiu struction


vfp 中字符型数据的长度超过254怎么办
方法1、用多个字符字段拼接。方法2、换用memo类型。

vfp的字段宽度原先设成了10 后来改成了20 还是只能输5个字、、为神马...
你是在表单上的 text 文本框吧 text 文本框的 maxlength 属性 设置为 0 就不限制输入长度了 当然啦, 你的表结构的相关长度更重要了.

vfp中调整一个表中某字段内容,使另一个表中与之相对应的字段内容改变...
假设有 一 二 两个表,共同字段为 我很好 那么 sele a use 一 inde on 我很好 to w1 sele b use 二 inde on 我很好 to w2 set rela to a into 我很好 这是临时关联,还可以永久关联。

VFP中修改字段的问题
在浏览状态下 用菜单命令“表\/替换字段” 字段选“作者” 替换为“作者”+“等”

vfp怎么样修改一个字段的每个值?
"所有的replace都输入进命令行的时候,命令行只执行最后一条,前面的都不执行"你是说在命令窗口中输入了很多replace命令吗?如果是这样,把他们放在程序(.prg)中就行了

谁能列表告诉我Visual FoxPro的一些常用命令
DROP VIEW 从当前数据库中删除指定的SQL视图 EDIT 显示要编辑的字段FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]常用子句 范围:表示记录的执行范围,可以是下面几项其中之一:ALL 表示全部记录; NEXT n 表示从当前...

VFP中怎样修改自由表中的备注字段内容?
在自由表的浏览状态下,双击某记录对应的备注字段的单元格,即可打开备注字段的编辑窗口进入输入,输入完毕,关闭窗口即可,否则按Esc键可退出输入状态。

如何批量修改vfp中的数据
参考两个命令:SCAN REPLACE A WITH B FOR 条件 ***将字段A的值改为B ENDSCAN UPDATE TABLENAME SET A=B WHERE 条件 ***一次性将符合条件的字段A 的值全部变成B

VFP6.0中 想修改其中某个表中某一个字段内的内容 如何修改?
use 表名 repl 字段名 with 值

vfp中如何设置"工作时间"其值为90年之后的有效性规则?
你可以通过以下步骤来设置有效性规则:在VFP中打开要设置有效性规则的表。在“表设计器”中选定要建立规则的字段名。在“表达式生成器”中设置有效性表达式。确认修改。至于处理设置"工作时间"其值为90年之后的有效性规则,你可以采用datetime()函数以日期时间值,具体如下 在VFP中,你可以使用多种函数来...

金明区19565654745: 求vfp中修改字段长度语句 -
孟迹丙酸: ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1FieldType [( nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]][AUTOINC [NEXTVALUE NextValue [STEP StepValue]]] [...

金明区19565654745: microsoft visual foxpro中改字段长度 -
孟迹丙酸: 在foxpro中改字段长度的方法:方法1,命令语句法,在VFO的命令窗口输入:MODIFY STRUCTURE说明:调出表设计器,然后选择你要上传的DBF表,即可按要求修改各字段的长度 方法2,菜单执行法1.菜单栏---窗口--数据工作期---打开 选择你要上传的DBF表 ---确定2.数据工作期----属性 --修改---即可在弹出的表设计器中按需修改各字段的长度--确定或2.菜单栏--显示---表设计器----修改 ---确定亲 觉得好请采纳 谢谢!

金明区19565654745: vfp中将“客户”表的姓名字段宽度由8改为10的sql语句是什么 -
孟迹丙酸: ALTER table 客户 alter COLUMN 姓名 c(10)

金明区19565654745: vfp试题中,要求字段的有效性规则为:字段有效长度(删除前后导空格)为6个字符,SQL语句怎么写? -
孟迹丙酸: 在VFP字段的有效性规则只是一个布尔表达式,不是SQL语句.比如你的字段名为"姓名",则有效性规则为 len(alltrim(姓名))=6

金明区19565654745: 如何通过代码修改用户使用的visual foxpro 表的列名的字符长度! -
孟迹丙酸: 数据库中的表一旦设定,是很稳定的实体,不会随便修改表的结构的.若还是在设计阶段,有以下方法:1、用VFP的modi stru 修改表结构;2、删除原表,重建.另,数据库中的表中字段名和显示在屏幕上或在报表中的列名是可以不一样的,这完全在于你想让它呈现什么 !

金明区19565654745: VFP打开DBF文件修改一个字段类型为数值型 -
孟迹丙酸: vfp的数值型字段的最大有效位大致在15位左右,你能定义为20位的最大宽度即可.若这个范围不能满足你的要求,你可用浮点型或双精度型进行定义.

金明区19565654745: VFP的prg中想把一个库的一个字段从文本型改成数值型怎么写? -
孟迹丙酸: ALTER TABLE 表名 ALTER COLUMN 字段名 类型(长度) 如修改表 a 的 stud 字段的类型为C,长度为10 则 ALTER TABLE a ALTER COLUMN stud C(10)

金明区19565654745: 变更表字段长度的sql语句是什么(Oracle)
孟迹丙酸: alter table v_table modify v_field varchar(10) 此为标准SQL,对任何数据库都适用

金明区19565654745: 在使用VF时设置字段有效性规则对订单号长度必须为8怎么设置 急求 谢谢 -
孟迹丙酸: 打开数据库,选中订单表,点右键-修改,然后选中订单号字段,在字段有效性规则中输入:len(订单号)=8

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网