为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用SQL改变一列的数据类型?

如何使用SQL改变一列的数据类型?

呼如林 2021-08-18 19:15:37
我在表创建号之后create table 表(number int,name char(10))请问能够实现修改单个列的数据类型吗?路过要刹车啊
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

你可以使用 ALTER TABLE 加 ALTER COLUMN 来更改指定的列数据类型,如:
CREATE TABLE
myTest (fId int,fName nvarchar(20) null)
创建一个表,名为:myTest,包含两个字段。如果此时你想要更改 fName 列,那么可以使用以下语句:

ALTER TABLE myTest
ALTER COLUMN fName nvarchar(30) null

这里要注意,如果指定的新的数据类型长度比原来的数据类型小,那么会出现数据丢失的情况,所以千万要注意,另外,不是所有的数据类型都可以更改,以下是SQL联机丛书中提到的注意事项:

要更改的列不能是:
·数据类型为 text、image、ntext 或 timestamp 的列。
·表的 ROWGUIDCOL 列。
·计算列或用于计算列中的列。
·被复制列。
·用在索引中的列,除非该列数据类型是 varchar、nvarchar 或 varbinary,数据类型没有更改,而且新列大小等于或者大于旧列大小。
·用在由 CREATE STATISTICS 语句创建的统计中的列。首先用 DROP STATISTICS 语句删除统计。由查询优化器自动生成的统计会由 ALTER COLUMN 自动除去。
·用在 PRIMARY KEY 或 [FOREIGN KEY] REFERENCES 约束中的列。
用在 CHECK 或 UNIQUE 约束中的列,除非用在 CHECK 或 UNIQUE 约束中的可变长度列的长度允许更改。
·有相关联的默认值的列,除非在不更改数据类型的情况下允许更改列的长度、精度或小数位数。



查看完整回答
反对 回复 2021-08-23
?
HUH函数

TA贡献1836条经验 获得超4个赞

如果长度足够可以使用
alter table 表名
alter column 字段名称 nvarchar(255)
如果长度不够则需要增加一个列,然后把源数据列进行转换长度后放入

查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 296 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信