表列名如下:5550087_C.abc         5550088_C.abc        5550088_D.abc    5550088_E.abc 等400余条改成如下:5550087C        5550088C        5550088D    5550088E求语句

解决方案 »

  1.   


    declare @col varchar(15)
    set @col='5550087_C.abc'
    select left(@col,7)+substring(@col,9,1)
      

  2.   

    declare @sql varchar(8000)
    select 
      @sql=isnull(@sql+char(10),'')
      +'exec sp_rename ''['+a.name+'].['+b.name+']'', '''+replace(replace(b.name,'_',''),'.abc','')+'''' 
    from 
      sysobjects a join syscolumns b on a.id=b.id 
    where 
     a.type='U' and b.name like '%.abc'
    exec (@sql)
      

  3.   


    可以听直接拿来用到你的实际环境中执行。意思是: 先 按照你的逻辑 :把带有 .abc的 数据找出来,然后用 sp_rename 存储过程和 replace 函数 将.abc替换为空 就是你想要的结果