Невозможно изменить столбец some_field на тип данных decimal - PullRequest
0 голосов
/ 14 января 2020

Когда я пытаюсь изменить столбец с типом TEXT на DECIMAL или наоборот, это не произойдет. Но если я сначала изменю его на VARCHAR , то он может измениться в DECIMAL. Мой вопрос: почему мы не можем изменить текст из десятичного или десятичного в текст непосредственно?

Create Table temp
( 
    id int,
    some_field text NULL
) 

ALTER TABLE temp ALTER COLUMN some_field DECIMAL(16,2) NULL;
--Cannot alter column 'some_field' to be data type decimal(16,2).

Изменение его в varchar:

ALTER TABLE temp ALTER COLUMN some_field VARCHAR NULL;
--Command(s) completed successfully.

ALTER TABLE temp ALTER COLUMN some_field DECIMAL(16,2) NULL;
--Command(s) completed successfully.

1 Ответ

3 голосов
/ 14 января 2020

SQL Сервер просто не может преобразовать текст в десятичную. Чтобы увидеть неявные и явные преобразования, которые он может выполнить, проверьте таблицу в документации .

...