首页 > 解决方案 > 如何用 SQL 确定小数类型列的小数位数

问题描述

我需要将精度为 16 和刻度 2 的小数类型列更改为精度 16 和刻度 5,为此我将执行以下操作:

ALTER TABLE dbo.my_table ALTER COLUMN my_column DECIMAL(16, 5)

但是为了避免每次应用程序运行时都进行这种更改,我想读取列比例,如果它与 5 不同,则将执行上面的行。

有没有办法获得十进制类型列的比例?

标签: sqlsql-servertsqldecimalscale

解决方案


有没有办法获得十进制类型列的比例?

您可以查询information_schema.columns

select column_name, numeric_precision, numeric_scale 
from information_schema.columns
where table_schema = 'dbo' and table_name = 'my_table' and column_name = 'my_column'

推荐阅读