Есть ли способ изменить точность существующего десятичного столбца на сервере Sql?
Как изменить точность десятичного столбца на Sql Server?
Ответ 1
ALTER TABLE Testing ALTER COLUMN TestDec decimal(16,1)
Просто поместите decimal(precision, scale)
, заменив точность и масштаб на нужные вам значения.
Я не тестировал это с данными в таблице, но если вы измените точность, вы потеряете данные, если новая точность будет ниже.
Ответ 2
Может быть лучший способ, но вы всегда можете скопировать столбец в новый столбец, отбросить его и переименовать новый столбец обратно в имя первого столбца.
чтобы:
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, но должно работать на SQL Server 2000 +.
Ответ 3
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DATA_TYPE();
Для вас проблема:
ALTER TABLE (Your_Table_Name) MODIFY (Your_Column_Name) DECIMAL(Precision, Scale);
Ответ 4
Перейдите в корпоративный менеджер, таблицу проектирования, нажмите на свое поле.
Сделать десятичный столбец
В свойствах внизу есть свойство точности
Ответ 5
ALTER TABLE 'tableName' CHANGE 'columnName' DECIMAL(16,1) NOT NULL;
Я использую это для переделки