Oracle/MySQL/SQL Server修改表字段类型和长度

Oracle

ALTER TABLE T_USER MODIFY USERNAME VARCHAR2(18);

MySQL

ALTER TABLE T_USER CHANGE USERNAME USERNAME VARCHAR(200) NOT NULL COMMENT ‘username‘;

SQL Server

ALTER TABLE T_USER ALTER COLUMN USERNAME VARCHAR(200);

【注意】SQL Server 字段有约束或者索引,需要按如下方式处理:

  • 字段是主键
1 ALTER TABLE T_USER DROP CONSTRAINT PK_T_USER;
2 ALTER TABLE T_USER ALTER COLUMN ID VARCHAR(20) NOT NULL;
3 ALTER TABLE T_USER ADD CONSTRAINT PK_T_USER PRIMARY KEY (ID);
  • 字段有约束,并且修改后字段长度大于原长度:
1 ALTER TABLE T_USER DROP CONSTRAINT UN_T_USER;
2 ALTER TABLE T_USER ALTER COLUMN USERNAME VARCHAR(20);
3 ALTER TABLE T_USER ADD CONSTRAINT UN_T_USER UNIQUE (USERNAME);
  • 字段有索引,比如唯一索引,并且修改后字段长度大于原长度:
1 DROP INDEX IDX_USER ON T_USER;
2 ALTER TABLE T_USER ALTER COLUMN USERNAME VARCHAR(20);
3 CREATE INDEX IDX_USER ON T_USER(USERNAME);

原文地址:https://www.cnblogs.com/EaTerLeader/p/11573695.html

时间: 2024-10-09 05:40:23

Oracle/MySQL/SQL Server修改表字段类型和长度的相关文章

SQL SERVER 修改表字段长度  

问题:数据库插入数据时提示:将截断字符串或二进制数据 解决:检查表发现地址长度应该是char(255),但是写成了char(25),所以地址字段的长度要修改. SQL:ALTER TABLE TABLENAME COLUMNNAME CHAR(255). SQL SERVER 修改表字段长度

不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn from ( QUERY_SQL ) A )  where rn <= ((currentpage+1)*pagesize) and rn > (currentpage*pagesize) 注:QUERY_SQL为查询sql语句. 或 select * from (select rownum rn,id

mysql中修改表字段名/字段长度/字段类型详解

先来看看常用的方法 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各数据库中基本通用.下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认为空alter table user add COLUMN new2 VARCHAR(20) NOT NULL; //增加一个字段,默认不能为空 2.删除一个字段 alter table user DROP COLUMN ne

sql server 删除表字段和字段的约束

删除数据库表中的字段时,使用了 :alter table 表名 drop column 列名 服务器返回的错误为:Server: Msg 5074, Level 16, State 1, Line 1The object 约束名 is dependent on column 列名.Server: Msg 4922, Level 16, State 1, Line 1ALTER TABLE DROP COLUMN 列名 failed because one or more objects acce

SQL SERVER 获取表字段信息

CREATE PROCEDURE [Common].[ProcLoadColumnInfo] @inObjectName sysname AS BEGIN SELECT  TableCatalog = DB_NAME() , TableSchema = SCHEMA_NAME(C.schema_id) , TableName = D.name , ColumnName = A.name , ColumnPosition = A.colorder , DataType = B.name , Max

SQL Server 联表字段合并查询

经常遇到统计报表中,子表记录合并为一个字段的情况.例如:省表中各省经济水平前五的城市统计. 有如下两表:dbo.省 和 dbo.市 (好吧,你可能会吐槽为什么用中文表名,其实我是为了方便查找替换) 这里暂时不考虑经济水平前五这种外部条件,期望将所有城市使用中文逗号拼接起来,如图: 具体做法如下: --基于子表查询 SELECT P.Name AS '省', STUFF((SELECT ','+Name FROM dbo.市 WHERE Parent=C.Parent FOR XML PATH('

mysql sql语句修改字段名称,字段长度

语法: ALTER TABLE 表名 MODIFY COLUMN 字段名  数据类型(修改后的长度) 例子: 将字段的长度由10改为20 ALTER TABLE attence MODIFY COLUMN id INT(20) 2.修改字段的名称 语法: alter table <表名> change <字段名> <字段新名称> <字段的类型>. 例子: 将字段attence_name改为name ALTER TABLE attence CHANGE att

修改非空表字段类型Oracle

执行以下语句报"要修改数据类型,则要更改的列必须为空"       alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表中加一个临时字段       alter table 表名 add 临时字段 目标字段原来的类型; 第二步,将目标字段的值付给临时字段,并将目标字段置空       update 表名 set 临时字段=目标字段,目标字段=null; 第三步,修改目标类型       alter table 表名  modi

MySQL建表字段类型

1.数据库:在MySQL中,要存储数据,必须从数据库开始,因此首先要创建数据库,但由于学校的MySQL服务器对学生数据帐号有限止,学生不得创建数据库,故每个学生的帐号中已事先由信息中心为大家建立了一个名为帐号名的数据库.但我们必须了解创建数据库的语句为CREATE DATABASE <数据库名>2.数据表:是构成数据库的一个基本单位,在一个数据库中用户可以建立多张数据表.这是我们有权力建立的.3.数据表结构:创建一个数据表的第一步即为创建数据表结构,在数据表结构中的内容包括:有几个字段,每个字