--用如下SQL找到所有符合条件的表名和列,生成动态SQL执行。
select * 
from information_schema.columns
where data_type='numeric' and numeric_precision=18 and numeric_scale=4

解决方案 »

  1.   

    --类似如下,修改一下要修改的列的限制条件即可:--用如下SQL找到所有符合条件的表名和列,生成动态SQL执行。declare @sql varchar(8000)set @sql=''
    select @sql = @sql + ' alter table [' + table_name + '] alter column [' + column_name + '] numeric(18,2) '
    from information_schema.columns
    where data_type='numeric' --and numeric_precision=18 and numeric_scale=4print @sqlexec (@sql)
      

  2.   


    --用如下SQL找到所有符合条件的表名和列,生成动态SQL执行。declare @sql varchar(8000)set @sql=''
    select @sql = @sql + ' alter table [' + table_name + '] alter column [' + column_name + '] numeric(18,4) '
    from information_schema.columns
    where data_type='numeric' 
        and (
               (numeric_precision=12 and numeric_scale=2) or
               (numeric_precision=12 and numeric_scale=4) or
               (numeric_precision=10 and numeric_scale=2) or
               (numeric_precision=10 and numeric_scale=4) or
               (numeric_precision=18 and numeric_scale=2)
            )print @sqlexec (@sql)