【问题标题】:How to change data type of a column in an SQL table from integer to decimal如何将 SQL 表中列的数据类型从整数更改为十进制
【发布时间】:2015-01-26 07:29:22
【问题描述】:

我已将我创建的表的其中一列的数据类型指定为int。我的问题是当我对它运行查询时它没有显示小数位。

如何更正此列的数据类型以使其接受小数位?

表为dbo.Budget,相关列名为ROE

【问题讨论】:

标签: sql sql-server integer decimal type-conversion


【解决方案1】:

简单 - 只需运行这条 SQL 语句

ALTER TABLE dbo.Budget
ALTER COLUMN ROE DECIMAL(20,2)   -- or whatever precision and scale you need.....

请参阅freely available MSDN documentation,了解十进制数的精确度、小数位数和长度以及可能的值范围

【讨论】:

  • 注意:如果您在该列上有NOT NULL,您还需要在alter语句中指定它,否则它现在会接受空值
【解决方案2】:

只是为了清楚地说明这一点:

如果表中没有数据,或者没有那么多数据,那么简单的ALTER TABLE 语句(如此处其他答案中所述)就可以了。

但是,如果存在大量数据(数百万行,或者可能更少,具体取决于表的大小)和/或表上存在大量争用,并且没有太多机会进行完整的停机/维护窗口,那么它需要一种不同的方法,比如我在这个答案中描述的:Narrowing the Data Types on a very large table

【讨论】:

    【解决方案3】:

    你可以执行这个简单的sql语句

    Alter table yourtable
    Alter Column yourtable_column Decimal(10,2)
    

    您可以根据需要设置小数精度和缩放比例。

    【讨论】:

      【解决方案4】:

      更改该列的数据类型..但一般 sql 不允许更改。它会提示您删除该列..有设置来实现那个东西。
      转到工具-选项-设计器-表和数据库设计器并取消选中阻止保存选项。我正在使用 abt sql server 2008R2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-09
        • 2021-09-29
        • 2011-08-20
        • 2017-02-04
        • 2012-02-21
        • 2021-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多