无法将列 'some_field' 更改为小数数据类型
Cannot alter column 'some_field' to be data type decimal
当我尝试将 TEXT 数据类型的列更改为 DECIMAL 或相反时,它不会。但是,如果我先将其更改为 VARCHAR,则它可以更改为 DECIMAL。我的问题是,为什么我们不能直接从 TEXT 更改为 decimal 或 decimal 到 text?
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.
SQL 服务器根本无法将文本转换为十进制。要查看它可以执行的隐式和显式转换,check the chart in the documentation.
当我尝试将 TEXT 数据类型的列更改为 DECIMAL 或相反时,它不会。但是,如果我先将其更改为 VARCHAR,则它可以更改为 DECIMAL。我的问题是,为什么我们不能直接从 TEXT 更改为 decimal 或 decimal 到 text?
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.
SQL 服务器根本无法将文本转换为十进制。要查看它可以执行的隐式和显式转换,check the chart in the documentation.