SQL Server修改varchar(20)为int时报错的解决方案

我使用的是SQL Server2017,初学时修改表中某列的数据类型,将其从varchar(20)改为int。在对象资源管理器中找到要修改的表—右键单击“设计”——打开窗口后找到要修改的列的数据类型直接修改,会发现报错,如下图:
在这里插入图片描述
这是因为系统默认设置,此时我们只需要做以下更改即可:
“工具”——“选项”——“设计器”——“表设计器和数据库设计器”——取消勾选“阻止保存要求重新创建表的更改”
在这里插入图片描述
这时我们再来修改数据类型就可以啦。

第二种方法就是利用SQL语言来修改数据类型,语法如下:

ALTER table_name
ALTER COLUMN column_name 数据类型

要注意的是设置了主键的列不可以用SQL语句修改(表中已经插入数据),否则会出现报错。这种情况我们就可以采用上面提到的利用管理平台手动修改。
在这里插入图片描述
当然如果已插入数据为字符型的列想要修改数据类型为int也是不可以的,如下图已插入课程名为‘数据库’,就不可以修改为int型:
在这里插入图片描述
varchar修改为int的前提条件是原来的数据也是数字,而且不大于int最大值2147483647。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值