How do I alter the precision of a decimal column in Sql Server?

前端 未结 5 783
野性不改
野性不改 2020-12-25 09:18

Is there a way to alter the precision of an existing decimal column in Sql Server?

相关标签:
5条回答
  • 2020-12-25 09:47
    ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
    

    Just put decimal(precision, scale), replacing the precision and scale with your desired values.

    I haven't done any testing with this with data in the table, but if you alter the precision, you would be subject to losing data if the new precision is lower.

    0 讨论(0)
  • 2020-12-25 09:48
    ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE();
    

    For you problem:

    ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale); 
    
    0 讨论(0)
  • 2020-12-25 09:49
    ALTER TABLE `tableName` CHANGE  `columnName` DECIMAL(16,1) NOT NULL;
    

    I uses This for the alterration

    0 讨论(0)
  • 2020-12-25 09:55

    Go to enterprise manager, design table, click on your field.

    Make a decimal column

    In the properties at the bottom there is a precision property

    0 讨论(0)
  • 2020-12-25 10:08

    There may be a better way, but you can always copy the column into a new column, drop it and rename the new column back to the name of the first column.

    to wit:

    ALTER TABLE MyTable ADD NewColumnName DECIMAL(16, 2);
    GO
    
    UPDATE  MyTable
    SET     NewColumnName = OldColumnName;
    GO
    
    ALTER TABLE CONTRACTS DROP COLUMN OldColumnName;
    GO
    
    
    EXEC sp_rename
        @objname = 'MyTable.NewColumnName',
        @newname = 'OldColumnName',
        @objtype = 'COLUMN'
    GO
    

    This was tested on SQL Server 2008 R2, but should work on SQL Server 2000+.

    0 讨论(0)
提交回复
热议问题