在SQL Server中,我可以将列从varchar转换为int数据类型

时间:2011-04-21 11:31:07

标签: sql-server types

此列中现有记录的所有数据都是整数,但SQL服务器mgmt studio GUI似乎不允许我修改此列,因为它抱怨它必须删除并读取表。

是否有任何解决方法可以将列从varchar(null)转换为int字段?

4 个答案:

答案 0 :(得分:2)

ALTER TABLE table_name
ALTER COLUMN column_name int

答案 1 :(得分:1)

您需要更改SSMS中的设置。

工具 - 选项 - 设计师

enter image description here

答案 2 :(得分:0)

  • 创建新的int列
  • 转换并复制旧varchar列中的数据
  • 删除旧的varchar列
  • 重命名新的int列

答案 3 :(得分:0)

只要列中的值没有冲突,您就可以将列更改为int数据类型。

create table x(a varchar(10))
insert into x values ('1'),('2')

alter table x alter column a int

如果发生冲突,您将在

的趋势中出现n错误
create table x(a varchar(10))
insert into x values ('1'),('2'),('a'),('b')

alter table x alter column a int

Msg 245, Level 16, State 1, Line 3
Conversion failed when converting the varchar value 'a' to data type int.