Як змінити точність десяткового стовпця в Sql Server?


Відповіді:


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

Просто поставте decimal(precision, scale), замінивши точність і масштаб на бажані значення.

Я не проводив жодного тестування з цим даними в таблиці, але якщо ви зміните точність, ви втратите дані, якщо нова точність буде нижчою.


2
Це працювало для мене при збільшенні точності для десяткової (18,2) до десяткової (18,3).
Ребекка,

Дякую тобі, такий простий, все ще важкий для пошуку.
Філіп Лавуа,

Якщо у вас є 16 (загальне) цифрове число і ви збільшуєте шкалу, чи буде воно потрапляти до цифр вищого порядку, щоб звільнити місце для 2 нових знаків після коми? На жаль, наразі я не можу це перевірити.
user420667 04

12
Щоб відповісти на власне запитання, я створив файл sqlfiddle: sqlfiddle.com/#!3/4b8cb/1/0 . Відповідь полягає в тому, що зміна десяткової (18,2) на десяткову (18,3) призведе до помилки при зміні таблиці. десятковий (18,2) до десяткового (19,3), хоча повинен працювати.
user420667 04

12

Можливо, є кращий спосіб, але ви завжди можете скопіювати стовпець у новий стовпець, скинути його та перейменувати новий стовпець назад на ім’я першого стовпця.

а саме:

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+.


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

Для вас проблема:

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

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

Я використовую це для зміни


-3

Перейдіть до менеджера підприємства, таблиці дизайну, натисніть на своє поле.

Складіть десятковий стовпець

У властивостях внизу є властивість точності


4
Це призведе до повторного створення таблиці.
Олександр Кожєвніков

1
У цьому випадку не робіть цього тоді: p
qui

Я ніколи не розумів цієї сторінки таблиці дизайну. Ви не можете вносити жодних форм редагування щодо типу даних, хоча це не робить жодної проблеми у запиті. Імовірно, сторінка дизайну використовує запити у фоновому режимі, я не розумію, чому було введено це обмеження.
Флейтер

3
Ви можете вимкнути це за допомогою: Інструменти> Параметри> Конструктори - «Запобігання збереженню змін, що вимагають повторного створення таблиці».
Chris Missal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.