如何更改Sql Server中的十进制列的精度?

有没有办法改变Sql Server中现有的十进制列的精度?

ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1) 

只要把decimal(precision, scale) ,用你想要的值代替精度和比例。

我没有用表格中的数据做过任何testing,但是如果你改变了精度,如果新的精度较低,你将会丢失数据。

可能有更好的办法,但是您可以随时将列复制到新列中,然后将其删除并将新列重命名为第一列的名称。

以机智:

 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 

这在SQL Server 2008 R2上进行了testing,但应该在SQL Server 2000+上运行。

 ALTER TABLE `tableName` CHANGE `columnName` `columnName` DECIMAL(16,1) NOT NULL; 

我用这个来改变

 ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE(); 

对于你的问题:

 ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale); 

去企业经理,devise表,点击你的领域。

制作一个小数列

在底部的属性中有一个精度属性