Как изменить тип данных столбца в таблице SQL с integer на decimal

Я назначил тип данных одного из столбцов таблицы, которую я создал как int. Моя проблема в том, что он не показывает десятичные знаки, когда я запускаю запрос против него.

как исправить тип данных этого столбца, чтобы он принимал десятичные знаки?

таблица dbo.Budget и соответствующий столбец называется ROE.

4 ответов


легко-просто запустите эту инструкцию SQL

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

посмотреть свободно документация MSDN на что именно точность, масштаб и длина в десятичных числах и какие диапазоны значений возможны


чтобы это было ясно сказано:

Если в таблице нет данных или не так много, то простой ALTER TABLE заявление (как описано в других ответах здесь) в порядке.

но, если есть много данных (миллионы строк или, возможно, меньше в зависимости от размера таблицы) и/или много разногласий в таблице и не так много возможностей для полного окна простоя / обслуживания, то это требует другого подхода, такого как то, что я описал в этом разделе ответ: сужение типов данных на очень большой таблице.


изменить тип данных этого столбца ..Но в целом sql не позволит ченнджировать.Он предложит u удалить этот столбец..Есть установка, чтобы достичь этой вещи.
Перейдите к Tool-Option-designers-Table и Database designers и снимите флажок запретить сохранение.Я беру abt sql server 2008R2enter image description here


вы можете выполнить эту простую инструкцию SQL

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

вы можете установить десятичную точность и масштабировать все, что вам нужно.