sql语句如何更新某列数值为整数型?

sql语句如何更新某列数值为整数型?,第1张

(1)什么数据库?现在的页面看不出来是什么数据库。

(2)现在该字段的数据类型是什么?

我的猜测:我看这些0很整齐,小数点后面0的位数是一样的,也就是说明这个0是自动补的,我也查了前面你的那个类似字段,也是小数点后14位(算上小数点后不是0的数字),那么也就是说个人觉得你的数据类型应该mysql的decimal类型,因为个人所知的数据库中只有这个(据说DB2上也有这个,不过我没用过不知道)。

也就是说你的数据类型是decimal(xx,14),那么就会出现这个情况,你可以用alter修改该字段的字段类型,update只能修改字段的值,是没办法修改字段的字段类型的。而且因为decimal(xx,14)这个字段属性的关系,不管你怎么update,最终都是这种情况。

用alter语句进行修改。

语法:

alter table 表名 modify 字段名 字段类型(字段长度)说明:如果是date等没有长度的类型,字段长度部分可以省略。

如:目前test表属性如下

要将name列的字段类型改为date类型,可用如下语句:

alter table test modify name date此时可见name列的类型已经更新成功。

注意事项:

如果表中有数据尽量不要使用此语句,会造成数据丢失,应在备份的情况下进行修改。

SQL如何用语句更改字段可以用以下语句可以实现:

alter table 表名 alter column 字段名 变更后的字段类型。

注意:

但若是关键字段,带有主键,并且字段类型为用户自定义类型,具有默认值的情况下,用上述语句会出现错误。

例如:

现假设表为TABLE1,关键字段为FIELD1,主键为PK_FIELD1,关键字段的数据类型为用户自定义数据类型 cha_field1,实际为CHAR(10),默认值为dbo.D_field1现要求将字段类型改为 varchar(20),默认值去除错误提示如下:

服务器: 消息 5074,级别 16,状态 1,行 1

对象 'D_field1' 依赖于 列 'field1'。

服务器: 消息 5074,级别 16,状态 1,行 1

对象 'PK_field1' 依赖于 列 'field1'。

服务器: 消息 4922,级别 16,状态 1,行 1

ALTER TABLE ALTER COLUMN field1 失败,因为有一个或多个对象访问此列。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6769088.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存