SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int

--SQL获取指定数据表所有字段类型和精度脚本,直接执行下面的脚本即可

select a.name,
case a.precision 
when 0  then
   case a.is_ansi_padded 
 when 1 then
 convert(nvarchar(15),b.name+ '('+convert(nvarchar(10),a.max_length)+')') 
 when 0 then
 b.name 
 end 
else
   case a.scale 
 when 0 then
 b.name 
 else
 b.name+ '('+convert(nvarchar(10),a.precision)+','+convert(nvarchar(10),a.scale)+')'
 end
end 
 as typelength from sys.columns a left join sys.types b on a.system_type_id=b.system_type_id and a.user_type_id=b.user_type_id where a.object_id =(select object_id from sys.objects where name ='当前数据库中的已有数据表名称');
 
获取结果会类似下面的格式:
djbh         char(15)
dj_sort     int
lingsshl  decimal(14,3)

 

猜你喜欢

转载自ligaosong.iteye.com/blog/1879584