1. > 生活百科 >

sqlserver修改字段类型 sqlserver修改字段名

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型,如何操作?

修改字段用alter命令,如果该列中存在超过INT最大范围值(-32767到+32768)或非法INT数据,则需要事先将数据处理,否则提示相关错误。

如下示例:

Alter Table temp_teble alter column price INT.

SQL语句如何修改主键字段的字段类型类型

首先,修改主键字段的字段类型,肯定是要先删除主键才能操作的

sqlserver修改字段类型 sqlserver修改字段名sqlserver修改字段类型 sqlserver修改字段名


--【1.查找主键】

--SQLSERVER

select name as pkName from dbo.sysobjects where xtype='PK' and parent_obj=(select id from dbo.sysobjects where name='表名')

--ORACLE

SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = UPPER('表名') AND CONSTRAINT_TYPE ='P'

--【2.删除主键约束】

sqlserver修改字段类型 sqlserver修改字段名sqlserver修改字段类型 sqlserver修改字段名


ALTER TABLE 表名 DROP CONSTRAINT 约束名

--ORACLE

--删除主键连同索引

ALTER TABLE 表名 DROP CONSTRAINT 约束名 CASCADE DROP INDEX;

或者

ALTER TABLE 表名 DROP PRIMARY KEY CASCADE DROP INDEX;--【3.修改字段】

--【先把这一列的值备份到临时列里,再把这一列update成null,再修改类型,再把数据拷贝回来】

--SQLSERVER

--默认值单独处理,关联约束

--默认值的变更涉及到约束,如有约束,需要先查询出越是再进行删除

ALTER TABLE 表名 DROP CONSTRAINT 约束名

ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型(长度精度) 是否为空

ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 字段名

--ORACLE

--删除默认值:default null

ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR2(20) DEFAULT ' ' NOT NULL--【4.新增主键】

--指定主键名字

ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (F1,F2);

--未指定主键名字

ALTER TABLE 表名 ADD PRIMARY KEY (F1,F2)

SQL server怎样使用ALTER 语句修改字段名

alter table 表名 rename column 原名 to 新名 -- 这一句在SqlServer2000 中实测过,不行。

exec sp_rename '[表名].[列名]','[表名].[新列名]' -- 注意,单引号不可省略。

/* 这一句似是而非,如果真的照此执行,新的列名会变成“[表名].[新列名]”而不是你希望得到的“新列名”,注意,连方括号、点号 都会成为新列名的一部分。

比如 原表名叫 BB ,原列名叫 OldCol ,想改成NewCol ,如果执行 exec sp_rename '[BB].[OldCol]','[BB].[NewCol]' 的话,新的列名会变成很夸张的“[BB].[NewCol]”

所以正确的命令是:exec sp_rename '[BB].[OldCol]','NewCol' -- 注意逗号后面,没有表名,没有点号,没有方括号,执行这句,才能得到你想要的结果“NewCol”,

或者,另一条等价的语句为 exec sp_rename '[BB].[OldCol]',[NewCol] -- 逗号后面,如果要用方括号,就不要同时再用引号 。本语句在SqlServer2000 中实测通过。*/

关于SQLServer中修改字段(列)所会引发的问题

主键、默认值这都叫做约束,也就是当列上有约束的时候要先删除约束才能修改类型

其他约束还有唯一键、外键、check约束(应该没有了呵呵,其他的暂时想不出来了)

更改类型对数据的影响取决于隐式转换,比如datetime改成varchar的话会变成AM PM一类的

然后标志列,就是自增长的,不能修改类型,可以用设计器修改,设计器会先删除列再重新创建

sqlserver200版本数据库问题 我想修改字段数据库类型。

如果你的sql是sql2000varchar最长长度可以是8000,

如果是sql2005以上版本可以支持varchar(max),最长可达2g的字段容量数据

你可以试试,也许你的1024还是不够。

sqlserver修改字段类型 sqlserver修改字段名sqlserver修改字段类型 sqlserver修改字段名


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息