我使用的是SQL Server2017,初学时修改表中某列的数据类型,将其从varchar(20)改为int。在对象资源管理器中找到要修改的表—右键单击“设计”——打开窗口后找到要修改的列的数据类型直接修改,会发现报错,如下图:
这是因为系统默认设置,此时我们只需要做以下更改即可:
“工具”——“选项”——“设计器”——“表设计器和数据库设计器”——取消勾选“阻止保存要求重新创建表的更改”
这时我们再来修改数据类型就可以啦。
第二种方法就是利用SQL语言来修改数据类型,语法如下:
ALTER table_name
ALTER COLUMN column_name 数据类型
要注意的是设置了主键的列不可以用SQL语句修改(表中已经插入数据),否则会出现报错。这种情况我们就可以采用上面提到的利用管理平台手动修改。
当然如果已插入数据为字符型的列想要修改数据类型为int也是不可以的,如下图已插入课程名为‘数据库’,就不可以修改为int型:
varchar修改为int的前提条件是原来的数据也是数字,而且不大于int最大值2147483647。