| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12700 人关注过本帖
标题:[求助]怎样修改字段名?
只看楼主 加入收藏
任鱼跃
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-10-31
收藏
 问题点数:0 回复次数:13 
[求助]怎样修改字段名?
在SQL中,如何将一个字段名字改为另外的名字,比如我们想把“专业”表中的“班级代码”字段改为“专业代码”字段,应该怎样写SQL语句呢?
搜索更多相关主题的帖子: 字段 
2004-11-01 18:09
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 

ALTER TABLE – SQL 命令

示例 请参阅

以编程方式修改表的结构。

语法

ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]] [DEFAULT eExpression1] [PRIMARY KEY | UNIQUE] [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 [ERROR cMessageText3]] [DROP CHECK] [ADD PRIMARY KEY eExpression3 TAG TagName2 [FOR lExpression4]] [DROP PRIMARY KEY] [ADD UNIQUE eExpression4 [TAG TagName3 [FOR lExpression5]]] [DROP UNIQUE TAG TagName4] [ADD FOREIGN KEY [eExpression5] TAG TagName4 [FOR lExpression6] REFERENCES TableName2 [TAG TagName5]] [DROP FOREIGN KEY TAG TagName6 [SAVE]] [RENAME COLUMN FieldName4 TO FieldName5] [NOVALIDATE]

参数

TableName1

指定要修改其结构的表名。

ADD [COLUMN] FieldName1

指定要添加的字段名。单个的表中最多可以有 255 个字段。 如果一个或更多的字段允许 null 值, 该限制为 254 个字段。

ALTER [COLUMN] FieldName1

指定要修改的已有的字段名。

FieldType [(nFieldWidth [, nPrecision])]

指定新字段或待修改字段的字段类型、字段宽度和字段精度(小数点后的位数)。 参数 FieldType 是表示字段数据类型的单个字符。有些字段类型还需要参数 nFiledWidth 或 nPrecision,或者两者皆要。 下表列出了参数 FiledType 的值及其对应参数 nFiledWidth 和 nPression 的取舍情况:

字段类型字段宽度精度说明
Cn宽度为 n 的字符字段
D日期
T日期时间
Nnd宽度为 n 的数值型字段,小数点后保留 d 位
Fnd宽度为 n 的浮点型字段,小数点后保留 d 位
I整数型
Bd双精度型
Y货币型
L逻辑型
M备注型
G通用型
P图象

对于 D、T、I、Y、L、M、G 和 P 型数据,省略参数 nFieldWidth 和 nPrecision。如果对 N、F 或 B 型数据没有给出参数 nPrecision 的值,其的默认值为零。 NULL | NOT NULL 允许或不允许字段为空值。 如果省略 NULL 和 NOT NULL,当前的 SET NULL 设置将决定字段是否允许为空;并且如果命令中带有 PRIMARY KEY 或 UNIQUE 子句,当前的 SET NULL 设置不起作用,字段默认状况为非空。 CHECK lExpression1 指定字段的有效性规则。lExpression1 为逻辑表达式值,可以是用户定义的函数或存储过程。注意:每添加一个空记录时,都将进行有效性检查。如果有效性规则不允许添加的记录中有空字段值,VisualFoxPro 将产生错误信息。 ERROR cMessageText1 指定字段有效性检查出现错误时显示的错误信息。只有在“浏览”或“编辑”窗口中修改数据时,此信息才可能显示。 DEFAULT eExpression1 指定字段默认值。eExpression1 的数据类型必须与字段的数据类型相同。 PRIMARY KEY 创建主索引标识。索引标识与字段同名。 UNIQUE 创建与字段同名的候选索引标识。有关候选索引的详细内容,请参阅《开发指南》的第七章“处理表”。 附注 候选索引(由 UNIQUE 选项创建,具有在 ALTER TABLE 或 CREATE TABLE 中的 ANSI 兼容性。)与带 UNIQUE 选项的 INDEX 命令创建的索引不同。用带 UNIQUE 选项的 INDEX 命令创建的索引允许有重复索引关键字,而候选索引不允许有重复索引关键字。 在主索引或候选索引字段中,不允许有空值和重复记录。 如果用 ADD COLUMN 子句创建一个新字段,若给允许空值的字段创建主索引或候选索引,VisualFoxPro 不会产生错误。但是,如果您试图往用作主索引或候选索引的字段中输入空值或重复值,VisualFoxPro 将产生错误信息。 如果修改已有的字段和由字段组成的主索引表达式或候选表达式时,将检查字段是否为空值或重复记录。如果为空值或重复记录,Visual FoxPro 将产生错误,并且不对表进行修改。 REFERENCES TableName2 TAG TagName1 指定与之建立永久关系的父表。参数 TAG TagName1 指定父表索引标识,关系建立在此父表索引标识基础上。索引标识最长为 10 个字。 NOCPTRANS 防止对字符串或备注字段进行代码页转换。如果表转换到另一代码页,指定了 NOCPTRANS 的字段不进行转换。NOCPTRANS 只能指定字符字段和备注字段。 下面的例子建立了一个名字为 MYTABLE 的表:该表包括两个字符字段和两个备注字段。第二个字符字段 char2 和第二个备注字段 memo2 包含 NOCPTRANS 以防止转换。 CREATE TABLE mytable (char1 C(10), char2 C(10) NOCPTRANS,; memo1 M, memo2 M NOCPTRANS) ALTER [COLUMN] FieldName2 指定要修改的已有的字段名。 SET DEFAULT eExpression2 指定已有字段的新默认值。eExpression2 的数据类型必须与字段数据类型相同。 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 TAG TagName2 往表中添加主索引,eExpression 指定主索引关键字表达式,TagName2 指定主索引标识名,索引标识名最长为 10 个字符。如果省略TAG TagName2 而 eExpression3 是一个字段,主关键索引标识与指定的 eExpression3 同名。 DROP PRIMARY KEY 删除主索引及其标识。因为表只能有一个主关键字,所以不必指定关键字的名称。删除主索引也将删除所有基于此关键字的永久关系。 ADD UNIQUE eExpression4 [TAG TagName3] 往表中添加候选索引。eExpression4 指定候选索引关键字表达式,TagName3 指定候选索引标识名。候选标识名最长可为 10 个字符。如果省略参数 TAG TagName3 并且 eExpression4 为单个字段,候选索引标识与 eExpression4 中的指定的字段同名。 DROP UNIQUE TAG TagName4 删除候选索引及其标识。因为表可能有多个候选关键字,所以必须指定候选索引标识名。 ADD FOREIGN KEY [eExpression5] TAG TagName4 往表中添加外部关键字(非主关字)索引。 eExpression5 指定外部索引关键字表达式,TagName4 指定外部索引标识名。索引标识名最长为 10 个字符。 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 指定新的字段名。 注意 改变表的字段名时一定要小心--索引表达式、字段和表的有效性规则、命令、函数等等可能仍会引用原始字段名。 NOVALIDATE 选用这一选项后,Visual FoxPro 修改表的结构不受表中数据完整性的约束。默认时,Visual FoxPro 改变表结构将受到表中数据的完整性约束。使用 NOVALIDATE 参数将使默认情况无效。 说明 ALTER TABLE 命令可以用于修改还没有添加到数据库中的表的结构。然而在修改自由表时,如果加入 DEFAULT、FOREIGN KEY、PRIMARY REFERENCES 或 SET 子句,Visual FoxPro 将出现错误。 ALTER TABLE 命令可以通过建立新表头和往表头中添加记录来重建表。例如,改变字段类型或字段宽度。 表经过重建后,将对所有改变了类型或宽度的字段执行字段有效性规则。如果修改了表中所有字段的类型或宽度,将执行表的有效性规则。 如果对已含有记录的表修改其字段有效规则或表有效性规则,Visual FoxPro 将检查新的字段或表有效性规则是否与存在数据相符合,并在发现有不符之处时发出警告。 如果要修改的表在数据库中,ALTER TABLE-SQL 命令需要独占使用数据库。若要独占打开数据库,可使用包含 EXCLUSIVE 子句的 OPEN DATABASE 命令。


2004-11-01 18:21
任鱼跃
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-10-31
收藏
得分:0 
怎么这么复杂,麻烦给出我原题的答案好吗?
2004-11-01 18:25
regedit
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:950
专家分:0
注 册:2004-6-8
收藏
得分:0 

ALTER TABLE `专业` CHANGE `班级代码` `专业代码` VARCHAR( 24 ) NOT NULL

在MSSQL中不能用!


最新作品:百货品牌商品资讯第一门户([url]http://www./[/url]),欢迎交流
2004-11-02 17:55
database
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2004-11-4
收藏
得分:0 

alter table 专业 modify 班级代码 专业代码

应该是这样吧!

2004-11-04 20:56
卜酷塔
Rank: 7Rank: 7Rank: 7
来 自:魅力青岛
等 级:禁止访问
威 望:39
帖 子:2569
专家分:0
注 册:2004-6-12
收藏
得分:0 
hehe !原来生活可以更简单!

觉得为时已晚的时候,恰恰是最早的时候。

2004-11-05 09:51
tzhtang
Rank: 1
等 级:新手上路
帖 子:888
专家分:0
注 册:2004-8-30
收藏
得分:0 
其实我的意思是让他将这个命令整个消化!

2004-11-05 09:55
jerry_yuan
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2004-11-6
收藏
得分:0 
最简单的方法是在企业管理器里修改,想改成什么字段都可以
2004-11-07 15:29
lzalibabalr
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-7-31
收藏
得分:0 

如果列没有数据的话,
可以先删除这个列,然后再加上

CREATE TABLE #pro
(
[ID] INT,
[班级代码] CHAR(10)
)
GO

ALTER TABLE #pro
DROP COLUMN [班级代码]
ALTER TABLE #pro
ADD [专业代码] CHAR(10)

2007-08-01 15:48
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
收藏
得分:0 

楼上的麻烦了点,去看看帮助sp_rename


26403021 sql群 博客 blog./user15/81152/index.shtml
2007-08-02 11:04
快速回复:[求助]怎样修改字段名?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020600 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved