推荐_編碼轉換_使用经验
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 1  1/1   1  
作者
内容
daibiaoge  [个人空间]


注册  2020-04-30
发贴数  446
精华贴  2
原创贴  1
来自  
状态  正常

级别  会员
#1»发布于2020-12-25 09:23

思路: 
 
1、搞個表,做一個gb與big的對照表 
2、保存的時候自動替換 
 
create FUNCTION F_Gb2Big(@str nvarchar(8000),@toBig bit) 
 returns nvarchar(8000) 
as  
begin 
  IF @toBig=1 
    SELECT @str=REPLACE(@str,gb,big) from codetable 
    WHERE CHARINDEX(gb,@str)>0 
  ELSE 
    SELECT @str=REPLACE(@str,big,gb) from codetable 
    WHERE CHARINDEX(big,@str)>0 
   
  RETURN (@str) 
end 
 
 
create     procedure GB2BIG  @tablenam varchar(50)='tab1',@fan varchar(5)='1',@whr_sql varchar(4000)=''  
as  
  
  declare  @sql varchar(4000) 
 
    declare @field_cur cursor,@fieldname varchar(50) 
   
    set @sql='' 
    set @field_cur=cursor for    
       select b.name as fieldname  from  sysobjects a ,syscolumns b  
               where a.id =b.id  
               and a.xtype= 'u' 
               and a.name=@tablenam 
      open @field_cur 
      fetch next from @field_cur into @fieldname 
     while (@@fetch_status=0) 
     begin 
        
       set @sql=' update  '+@tablenam 
                    +'  set '+@fieldname+' =dbo.f_GB2BIG('+@fieldname+','+@fan+') '+@whr_sql 
   
       print @sql 
             exec(@sql) 
       
      
      fetch next from @field_cur into @fieldname 
     end 
    close @field_cur 
    deallocate @field_cur  
 
  select 'OK' AS OK


        于 2020-12-25 09:23 被 daibiaoge 修改



 1  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]