我需要将表的每个双精度字段更改为数字(15,3)类型, 如何使用遍历给定表的字段的存储过程快速完成此任务,如果类型是双精度,则将列更改为数字?
答案 0 :(得分:1)
以下查询应返回查询以更新这些表...如果需要,可以添加表过滤器。复制结果并运行它。
select 'ALTER TABLE ' + table_name + ' ALTER COLUMN ' + column_name + 'TYPE numeric(15,3)'
from information_schema.columns
where data_type = 'double precision'
and table_name = 'YOUR_TABLE_NAME'
在运行前测试它。我今年没试过。
答案 1 :(得分:0)
虽然另一个问题将针对所有列进行;一个简单的“alter table [tablename] alter column [columnToAlter] type numeric(15,3)。你不需要通过游标运行它们;任何不受此影响的值都不会受到影响。
如果你不能通过改变数据类型本身来做到这一点,那么简单的更新[tablename] set [columnname] = cast(columnname as numeric(15,3))也应该有用。
希望有所帮助!